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 Studio Java Discussion :

[Android Studio] Impossible de lancer l'application


Sujet :

Android Studio Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut [Android Studio] Impossible de lancer l'application
    Bonjour,
    Je teste mon application avec l'émulateur d'android studio, j'utilise une base de donnée que je voulais supprimé, j'ai donc désinstallé l'application sur l'émulateur et je n'arrive plus a lancer mon application dessus en faissant "Run"

    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
     
    04-27 19:24:13.703      939-939/com.example.utilisateur.tacheavecbdd E/AndroidRuntime﹕ FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.utilisateur.tacheavecbdd/com.example.utilisateur.tacheavecbdd.MainActivity}: java.lang.IllegalStateException: getDatabase called recursively
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
                at android.app.ActivityThread.access$600(ActivityThread.java:130)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loop(Looper.java:137)
                at android.app.ActivityThread.main(ActivityThread.java:4745)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:511)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.IllegalStateException: getDatabase called recursively
                at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:204)
                at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.sauvegardeTache(Tache_BDD.java:95)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.onCreate(Tache_BDD.java:44)
                at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
                at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.getAllTacheAsCursor(Tache_BDD.java:137)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.getAllTache(Tache_BDD.java:160)
                at com.example.utilisateur.tacheavecbdd.MainActivity.onCreate(MainActivity.java:43)
                at android.app.Activity.performCreate(Activity.java:5008)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
    ************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
    ************at android.app.ActivityThread.access$600(ActivityThread.java:130)
    ************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
    ************at android.os.Handler.dispatchMessage(Handler.java:99)
    ************at android.os.Looper.loop(Looper.java:137)
    ************at android.app.ActivityThread.main(ActivityThread.java:4745)
    ************at java.lang.reflect.Method.invokeNative(Native Method)
    ************at java.lang.reflect.Method.invoke(Method.java:511)
    ************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    ************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    ************at dalvik.system.NativeStart.main(Native Method)

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Tu as un appel récursif bloquant, comme l'indique l'erreur "getDatabase called recursively".
    Le problème se trouve dans le package com.example.utilisateur.tacheavecbdd, dans la classe Tache_BDD, dans la méthode sauvegardeTache, dans le fichier Tache_BDD.java à la ligne 95.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    C'est quoi un appel récursif bloquant ? ^^

    La méthode sert à ajouté une tache et si la tache existe déjà dans la base de donnée, on la modifi
    (l'objet tache comporte un titre, une priorité et un id, la base de donnée comporte une colonne id,titre et priorite)

    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
     
        public void sauvegardeTache(Tache t)
        {
            ContentValues cv = new ContentValues();
            cv.put(COL_TITRE,t.titre);
            cv.put(COL_PRIORITE,t.priorite);
     
            Long id = t.getId();
            if (id == null)
            {
                // Création
                id = this.getWritableDatabase().insert(TABLE_TACHE,null,cv);
                t.setId(id);  <-- ligne 95
            }
     
            else
            {
                //Modification
                this.getWritableDatabase().update(
                        TABLE_TACHE,
                        cv,
                        COL_ID + " = ? ",
                        new String[] {String.valueOf(id)});
            }
     
        }

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    C'est par exemple un "lock" de la base, alors que celle-ci est déjà lockée par le même thread....

    Si on reprend le logcat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         Caused by: java.lang.IllegalStateException: getDatabase called recursively
                at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:204)
                at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.sauvegardeTache(Tache_BDD.java:95)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.onCreate(Tache_BDD.java:44)
                at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
                at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.getAllTacheAsCursor(Tache_BDD.java:137)
                at com.example.utilisateur.tacheavecbdd.Tache_BDD.getAllTache(Tache_BDD.java:160)
                at com.example.utilisateur.tacheavecbdd.MainActivity.onCreate(MainActivity.java:43)
    En gros... tu demande une liste de tâches... pour cela, tu fais appel à getReadableDatabase() (qui fait appel à getDatabaseLocked).
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    (.. ici android a detecté que c'est récursif .. sinon on aurait la suite: )
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    La base n'existe pas, le SQLiteOpenHelper va la créer.
    Mais pour la créer, tu fais appel à getWritableDatabase() (qui fait aussi appel à getDatabaseLocked).
    ....

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    ok merci de votre aide

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

Discussions similaires

  1. impossible de lancer mon application via jar ou ant
    Par bobkilla dans le forum Langage
    Réponses: 8
    Dernier message: 25/06/2008, 14h53
  2. Impossible de lancer mon application
    Par lvr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/04/2007, 09h11
  3. Réponses: 8
    Dernier message: 24/01/2007, 15h49
  4. Impossible de lancer une application graphique
    Par Arnaud F. dans le forum Debian
    Réponses: 3
    Dernier message: 28/11/2006, 11h58
  5. [Eclipse 3.1] Impossible de lancer une application graphique
    Par pugnator dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 11/09/2005, 12h48

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