IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème accès getResources() dans ma classe objet


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut Problème accès getResources() dans ma classe objet
    Bonjour,

    J'ai un message d'erreur dans mon application Android dans Eclipse avec getResources() dans ma classe Objet "Balle" :

    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
    08-09 04:05:14.791: D/AndroidRuntime(1232): Shutting down VM
    08-09 04:05:14.791: W/dalvikvm(1232): threadid=1: thread exiting with uncaught exception (group=0xb4a81ba8)
    08-09 04:05:14.851: E/AndroidRuntime(1232): FATAL EXCEPTION: main
    08-09 04:05:14.851: E/AndroidRuntime(1232): Process: com.example.balle, PID: 1232
    08-09 04:05:14.851: E/AndroidRuntime(1232): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.balle/com.example.balle.MainActivity}: java.lang.NullPointerException
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread.access$800(ActivityThread.java:135)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.os.Handler.dispatchMessage(Handler.java:102)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.os.Looper.loop(Looper.java:136)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread.main(ActivityThread.java:5001)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at java.lang.reflect.Method.invokeNative(Native Method)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at java.lang.reflect.Method.invoke(Method.java:515)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at dalvik.system.NativeStart.main(Native Method)
    08-09 04:05:14.851: E/AndroidRuntime(1232): Caused by: java.lang.NullPointerException
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at com.example.balle.Balle.<init>(Balle.java:15)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at com.example.balle.BalleView.<init>(BalleView.java:16)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at com.example.balle.MainActivity.onCreate(MainActivity.java:13)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.Activity.performCreate(Activity.java:5231)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
    08-09 04:05:14.851: E/AndroidRuntime(1232): 	... 11 more
    J'ai 3 fichiers java :

    Balle.java :

    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
    package com.example.balle;
     
    import android.app.Activity;
    import android.content.Context;
    import android.content.res.Resources;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
     
    public class Balle extends Activity {
       float radius = 75;      // Rayon de la Balle
       float x = radius + 20;  // Centre de la Balle (x,y)
       float y = radius + 40;
       Context context = BalleView.GlobalContext;
       Resources res = context.getResources();
     
       // Constructeur
       public Balle() {
     
       }
     
       public void draw(Canvas canvas) {
    	   // affichage objet à partir d'une image
           Bitmap monImage = BitmapFactory.decodeResource(res, R.drawable.bubble);
           canvas.drawBitmap(monImage, x-radius, y-radius, null);
       }
    }
    BalleView.java :

    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
    package com.example.balle;
     
    import com.example.balle.Balle;
     
    import android.content.Context;
    import android.graphics.Canvas;
    import android.view.View;
     
    public class BalleView extends View {
       private Balle ball;
       public static Context GlobalContext = null;
     
       // Constructor
       public BalleView(Context context) {
          super(context);
          ball = new Balle();
       }
     
       @Override
       protected void onDraw(Canvas canvas) {
          // dessine la balle
     
    	   // affichage objet à partir d'une image
    	  ball.draw(canvas);
       }
     
    }
    MainActivity.java :

    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
    package com.example.balle;
     
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
     
    public class MainActivity extends Activity {
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          View BalleView = new BalleView(this);
          setContentView(BalleView);
          BalleView.setBackgroundColor(Color.WHITE);
       }
    }
    Voici également mon fichier image ressource dans res/drawable : Nom : bubble.png
Affichages : 302
Taille : 13,9 Ko

    Je ne trouve pas sur internet une soluton à mon problème d'exécution.

    Merci pour votre aide.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je cherche à créer en Android une classe Objet (fichier java indépendant) avec une méthode de dessin à partir d'un fichier image de mes ressources appelée dans une View.

    D'avance merci pour votre aide.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je n'ai rien trouvé sur internet sur les forums me permettant de résoudre mon problème.
    J'ai testé toutes les solutions sans résultat.

    D'avance merci pour votre aide.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    En passant au mode Debug de l'IDE Eclipse, le problème viendrait non pas de mon code ni des mes ressources mais des fichiers liés : voici les 2 messages me demandant une source liée apparement non présente :

    Nom : Debug1.jpg
Affichages : 305
Taille : 318,3 Ko

    Nom : Debug2.jpg
Affichages : 254
Taille : 264,3 Ko

    J'ai bien un fichier "Android.jar" mais je ne sais pas comment procéder pour l'attacher.

    Merci pour votre aide

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    En recherchant en ligne, j'ai été sur le markeplace d'Eclipse et j'ai installé le "Java Source Attacher". En cliquant droit sur Android.jar, j'ai tenté d'attacher la source mais l'opération n'a pas abouti comme sur l'écran joint :

    Nom : Java Source Attacher.png
Affichages : 257
Taille : 11,0 Ko

    J'ai également un "android-support-v4.jar" ... idem.

    Je suis débutant alors si quelqu'un a la solution à mon problème ... je suis preneur !

    Cdt

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Il faut lier le fichier "android.jar" vers le dossier "sources" du sdk android dans la Build Path du projet Android.
    Le problème du debugger vient du fait que j'ai mis un point d'arrêt sur une classe.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    J'ai trouvé 2 points d'erreur sur mon projet :

    1 : j'ai oublié : "import com.example.balle.BalleView;" dans MainActivity.java

    2 : le fichier Balle.java paraît inutile avec ce fichier BalleView.java :

    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
    package com.example.balle;
     
    import com.example.balle.Balle;
     
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.view.View;
     
    public class BalleView extends View {
       public static Context GlobalContext = null;
       private Paint paint;
     
       // Constructor
       public BalleView(Context context) {
          super(context);
          paint = new Paint();
       }
     
       @Override
       protected void onDraw(Canvas canvas) {
     
    	   // affichage objet à partir d'une image
     
    	   Bitmap monImage = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
               canvas.drawBitmap(monImage, 40, 40, paint);
       }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec .configure dans une classe
    Par Instanton dans le forum Tkinter
    Réponses: 2
    Dernier message: 29/12/2007, 10h37
  2. [POO] Probléme de syntaxe dans une classe
    Par jewelz dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2007, 04h57
  3. Problème de setInterval dans une Classe
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 21/08/2007, 20h45
  4. Problème Access Violation dans une classe
    Par randriano dans le forum C++Builder
    Réponses: 1
    Dernier message: 11/04/2007, 19h49
  5. Problème Acces Violation dans une DLL d'envoi de mail
    Par Avisseau dans le forum Delphi
    Réponses: 1
    Dernier message: 25/10/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo