Bonjour,

Je développe actuellement une APP android sous 4.3 minimum (lollipop)
Et j'ai un soucis que je n'arrive pas à comprendre à la compilation.

Voici le code mis en cause :
Celui-ci se trouve à l'intérieur des classes suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
public class MainActivity extends Activity {
 
    GameView gameView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        gameView = new GameView(this);
        setContentView(gameView);
    }
 
    class GameView extends SurfaceView implements Runnable{
 
 
       public class material{
            private String code;
            private String desc;
            private int prc;
            public material(){
                this.code     = "code01";
                this.desc      = "desc01";
                this.prc  = 100;
            }
            public void material(String codeM, String descM, int prcM){
                this.code    = codeM;
                this.desc     = descM;
                this.prc = prcM;
            }
        }
        public void initMaterials(int nbMat){
            material[] outils= new material[nbMat+1];
            for(int i=1;i<=nbMat;i++) {
                outils[i].material("code01", "des01", 100);
            }
        }
        /* *************************************** */
 
        public GameView (Context context){
            super(context);
            ourHolder = getHolder();
            paint = new Paint();
            initMaterials(10);
        }
 
 
    }  
}
Ce code me provoque un "java.lang.NullPointerException" incompréhensible
à la ligne 43 (initMaterials(10)) dans la methode GameView ????

Si une âme généreuse pouvait m'expliquer d'où vient le soucis ^^
Merci d'avance

Je viens de trouver, en fait il y avait une erreur lors de la création de l'objet:
J'ai remplacé
outils[i].material("code01", "des01", 100);

par

outils[i] = new material("code01", "des01", 100);