Partage
  • Partager sur Facebook
  • Partager sur Twitter

Android Vertuel Device

    1 août 2015 à 21:46:59

    Salut les informaticiens,

    j'ai essayer d’exécuté une application dans mon AVD mais il m’apparaît une ensemble de logs que je ne comprend pas leur sens:

    08-01 19:06:19.059      601-601/formationrs.rrapp D/dalvikvm﹕ Not late-enabling CheckJNI (already on)
    08-01 19:06:20.328      601-606/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-01 19:06:20.578      601-606/formationrs.rrapp E/dalvikvm﹕ Unable to open stack trace file '/data/anr/traces.txt': Is a directory
    08-01 19:06:20.848      601-606/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-01 19:06:20.888      601-606/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
    08-01 19:06:21.348      601-606/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-01 19:06:21.388      601-606/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
    08-01 19:06:22.418      601-601/formationrs.rrapp D/gralloc_goldfish﹕ Emulator without GPU emulation detected.
    08-01 19:06:22.648      601-606/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-01 19:06:22.668      601-606/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
    



    • Partager sur Facebook
    • Partager sur Twitter
      2 août 2015 à 14:27:54

      Salut,

      Est-ce que pendant l'exécution de ton application, l'application s'est mise à "freezer" et un message d'erreur est apparu du style "L'application ne répond pas, voulez-vous attendre ou forcer l'arrêt ?" ?

      Si oui, c'est ce qu'on appelle un ANR, c'est-à-dire que ton application effectue des actions dans le thread de l'UI et le bloque. Pour t'aider à résoudre ce problème, la stack des appels est loggé dans fichier texte. C'est ce qui est marqué dans les logs.

      • Partager sur Facebook
      • Partager sur Twitter
        3 août 2015 à 1:42:32

        Bonjour,
        je voulais inserer une colonne dans une table d'une base sqlite sous android:
        // creation de la table Projet:

        private static final String TABLE_PROJET = "table_projet";
            private static final String COL_IDPROJET = "IDP";
            private static final String COL_NOM_PROJET = "nom_projet";
            private static final String COL_DATED_PROJET = "dated";
            private static final String COL_DATEF_PROJET = "datef";
         
         
         
         
            private static final String CREATE_PROJET = "CREATE TABLE " + TABLE_PROJET + "("
                    + COL_IDPROJET + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM_PROJET + " TEXT NOT NULL, "
                    + COL_DATED_PROJET + " INTEGER NOT NULL, " + COL_DATEF_PROJET + " INTEGER NOT NULL );";
        

        Ma classe qui gère l’interaction avec la BD:

        public class ProjetDB {
            private static final int VERSION_BDD = 3;
            private static final String NOM_BDD = "projet.db";
         
            private static final String TABLE_PROJET = "table_projet";
            private static final String COL_IDPROJET = "IDP";
            private static final int NUM_COL_ID =0;
            private static final String COL_DATED_PROJET = "dated";
            private static final int NUM_COL_DATED =1;
            private static final String COL_DATEF_PROJET = "datef";
            private static final int NUM_COL_DATEF =2;
            private static final String COL_NOM_PROJET = "nom_projet";
            private static final int NUM_COL_NOMP =2;
         
         
            private SQLiteDatabase Pr_bd;
         
            private DataBaseClasse maBaseProjet;
         
            public ProjetDB(Context context){
                //On crée la BDD et sa table
                maBaseProjet = new DataBaseClasse(context, NOM_BDD, null, VERSION_BDD);
            }
         
            public void open(){
                //on ouvre la BDD en écriture
                Pr_bd = maBaseProjet.getWritableDatabase();
            }
         
            public void close(){
                //on ferme l'accès à la BDD
                Pr_bd.close();
            }
         
            public SQLiteDatabase getBDD(){
                return   Pr_bd;
            }
         
            public long insertprojet( MesProjets projet){
         
                //Création d'un ContentValues (fonctionne comme une HashMap)
                ContentValues values = new ContentValues();
                //on lui ajoute une valeur associée à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
                values.put(COL_NOM_PROJET, MesProjets.getNomP());
                values.put(COL_DATED_PROJET, MesProjets.getDateD());
                values.put(COL_DATEF_PROJET, MesProjets.getDateF());
                //on insère l'objet dans la BDD via le ContentValues
                return Pr_bd.insert(TABLE_PROJET, null, values);
            }
         
            public int updateprojet(int id, MesProjets projet){
                //La mise à jour d'une note dans la BDD fonctionne plus ou moins comme une insertion
                //il faut simplement préciser quel note on doit mettre à jour grâce à l'ID
                ContentValues values = new ContentValues();
                values.put(COL_NOM_PROJET, MesProjets.getNomP());
                values.put(COL_DATED_PROJET, MesProjets.getDateD());
                values.put(COL_DATEF_PROJET, MesProjets.getDateF());
                return Pr_bd.update(TABLE_PROJET, values, COL_IDPROJET + " = " +id, null);
            }
         
            public int removeNoteWithID(int id){
                //Suppression d'un livre de la BDD grâce à l'ID
                return Pr_bd.delete(TABLE_PROJET, COL_IDPROJET + " = " +id, null);
            }
         
            public MesProjets getprojetWithNom(String nom){
                //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
                Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_NOM_PROJET + " LIKE \"" + nom +"\"", null, null, null, null);
                return cursorToLivre(c);
            }
            public MesProjets getprojetWithDateD(int dated){
                //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
                Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_DATED_PROJET + " LIKE \"" + dated +"\"", null, null, null, null);
                return cursorToLivre(c);
            }
            public MesProjets getprojetWithDateF(int datef){
                //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
                Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_DATEF_PROJET + " LIKE \"" + datef +"\"", null, null, null, null);
                return cursorToLivre(c);
            }
         //Cette méthode permet de convertir un cursor en un projet
            private MesProjets cursorToLivre(Cursor c){
                //si aucun élément n'a été retourné dans la requête, on renvoie null
                if (c.getCount() == 0)
                    return null;
         
                //Sinon on se place sur le premier élément
                c.moveToFirst();
                //On créé un livre
                MesProjets mprojet = new MesProjets();
                //on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
                Note.setId(c.getInt(NUM_COL_ID));
                MesProjets.setNomP(c.getString(NUM_COL_NOMP));
                MesProjets.setDateD(c.getInt(NUM_COL_DATED));
                MesProjets.setDateF(c.getInt(NUM_COL_DATEF));
         
                //On ferme le cursor
                c.close();
         
                //On retourne le livre
                return mprojet;
            }
        }

        Main activity:

        public class MainProjet extends Activity {
            private static final String TAG = "";
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.projet_activity);
                //Création d'une instance de ma classe NoteDB
                ProjetDB maprojetDB = new ProjetDB(this);
         
                //Création d'une note
                MesProjets pr = new MesProjets("titre", 2015, 2016,1);
         
                //On ouvre la base de données pour écrire dedans
                maprojetDB.open();
                //On insère la note que l'on vient de créer
                maprojetDB.insertprojet(pr);
                String log= "success";
                Log.d(TAG, log);
         
                //Pour vérifier que l'on a bien créé notre note dans la BDD
                //on extrait la note  de la BDD grâce au titre du livre que l'on a créé précédemment
                MesProjets projetFromBdd = maprojetDB.getprojetWithNom(pr.getNomP());
                if(projetFromBdd != null){
                    //On affiche les infos du note dans un Toast
                    Toast.makeText(this, projetFromBdd.toString(), Toast.LENGTH_LONG).show();
                    projetFromBdd.setNomP("J'ai modifié le nom du projet");
                    //Puis on met à jour la BDD
                    maprojetDB.updateprojet(projetFromBdd.getId(), projetFromBdd);
                }
         
                //On extrait la note de la BDD grâce au nouveau titre
                projetFromBdd = maprojetDB.getprojetWithNom("J'ai modifié le nom du projet");
                //S'il existe une note possédant ce titre dans la BDD
                if(projetFromBdd != null){
                    //On affiche les nouvelles informations du note  pour vérifier que le titre du livre a bien été mis à jour
                    Toast.makeText(this, projetFromBdd.toString(), Toast.LENGTH_LONG).show();
                    //on supprime la note de la BDD grâce à son ID
                    maprojetDB.removeNoteWithID(projetFromBdd.getId());
                }
         
                //On essaye d'extraire de nouveau la note de la BDD toujours grâce à son nouveau titre
                projetFromBdd = maprojetDB.getprojetWithNom("J'ai modifié le nom du projete");
                //Si aucun livre n'est retourné
                if(projetFromBdd == null){
                    //On affiche un message indiquant que la note n'existe pas dans la BDD
                    Toast.makeText(this, "Ce projet n'existe pas dans la BDD", Toast.LENGTH_LONG).show();
                }
                //Si la note  existe (mais normalement il ne devrait pas)
                else{
                    //on affiche un message indiquant que la note existe dans la BDD
                    Toast.makeText(this, "Ce projet existe dans la BDD", Toast.LENGTH_LONG).show();
                }
         
                maprojetDB.close();
            }
         
                }

        lorsque j'execute ce programme l'emulateur m'affiche: NomPackage.MesProjets@41075920 dans un taost, puis Ce projet n'existe pas dans la BDD.
        aussi dans le logcat il m'apparait le suivant:

        08-02 09:38:53.666 551-551/formationrs.rrapp D/dalvikvm﹕ Not late-enabling CheckJNI (already on)
        08-02 09:38:54.896 551-557/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
        08-02 09:38:55.006 551-557/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
        08-02 09:38:55.376 551-551/formationrs.rrapp D/﹕ success
        08-02 09:38:55.406 551-557/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
        08-02 09:38:55.416 551-557/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
        08-02 09:38:55.806 551-551/formationrs.rrapp D/gralloc_goldfish﹕ Emulator without GPU emulation detected.
        08-02 09:39:10.706 583-589/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
        08-02 09:39:10.846 583-589/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'



        • Partager sur Facebook
        • Partager sur Twitter
          5 août 2015 à 20:37:15

          Est-ce que ton application plante ensuite ?

          • Partager sur Facebook
          • Partager sur Twitter

          Android Vertuel Device

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown