web-dev-qa-db-fra.com

Android Studio: le client n'est pas encore prêt

Lors du lancement d'une application, je reçois le message "Le client n'est pas encore prêt". En outre, mon appareil affiche le message "En attente de l'attachement du débogueur", suivi de "Malheureusement, l'application Android a cessé de fonctionner". J'ai essayé toutes les solutions possibles disponibles sur les forums de discussion, mais aucune solution ne s'applique ici. J'ai également essayé de lancer une application simple HELLO WORLD pour savoir s'il existe un problème avec mon code d'application, mais le même message a été affiché. J'ai essayé les choses suivantes:

  1. Réinstallation des pilotes de bureau
  2. Réinstallation du studio Android
  3. Installation de LLDB
  4. Utilisation d'un périphérique, d'un câble et d'un port différents 
  5. ajout de Android.os.Debug.waitForDebugger (); au fichier manifeste
  6. Modification du paramètre sur MTP uniquement
  7. Supprimer tous les points d'arrêt

Mais rien n'a fonctionné. Quelle pourrait être la cause de ce problème?

14
Aashi

L'activité doit être exportée pour être accessible depuis adb. Si l'activité a un intent-filter, elle est exportée par défaut. Sinon, ajoutez le drapeau exporté:

<activity
    Android:name=".my.MyActivity"
    Android:exported="true"/>

C'est l'erreur que vous obtenez lorsque l'activité n'est pas exportée et que vous exécutez

adb Shell am start -n "com.example/com.example.my.MyActivity" -a Android.intent.action.MAIN -c Android.intent.category.LAUNCHER

Erreur:

Permission Denial: starting Intent { act=Android.intent.action.MAIN cat=[Android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example/.my.MyActiviy } from null (pid=26721, uid=2000) not exported from uid 10304
    at Android.os.Parcel.readException(Parcel.Java:1620)
    at Android.os.Parcel.readException(Parcel.Java:1573)
    at Android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.Java:2694)
    at com.Android.commands.am.Am.runStart(Am.Java:875)
    at com.Android.commands.am.Am.onRun(Am.Java:359)
    at com.Android.internal.os.BaseCommand.run(BaseCommand.Java:47)
    at com.Android.commands.am.Am.main(Am.Java:100)
    at com.Android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.Android.internal.os.RuntimeInit.main(RuntimeInit.Java:251)
17
passsy

[Cette réponse est obsolète pour les dernières versions d'Android Studio]

Cela a fonctionné pour moi:

Outils> Android> Activer l'intégration ADB

Vous devez cocher Activer l'intégration ADB

3
partho

S'il s'agit d'un problème transitoire, dans la plupart des cas, le redémarrage d'Android Studio a résolu le problème.

Dans un cas, un redémarrage de Windows semblait résoudre le problème. Un redémarrage de l'appareil n'a pas.

C’était un problème passager qui se produisait occasionnellement pendant quelques jours mais finissait par se produire à chaque fois et arrêtait donc tout travail.

Je travaillais avec deux projets Android Studio ouverts simultanément, exécutant des applications (différentes) sur le même appareil (mais pas au même moment).

J'ai peut-être ouvert l'explorateur de fichiers de périphérique sur les deux projets.

1
OldCurmudgeon

ajouter ces lignes dans votre fichier manifeste

        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>

dans votre tag d'activité

0
fatih

Si l'erreur ne vient pas de_ NId'AndroidManifest (comme dans mon cas), vous pouvez essayer ceci:

  • Outil -> Android -> DESACTIVER [Activer l'intégration ADB]
  • Exécuter -> Exécuter "appname"
  • Lorsque votre application affiche le message "En attente de débogage", sélectionnez Exécuter -> Attacher le débogueur au processus Android -> Choisissez le nom du package de votre application sous le nom de Deive.
  • Observez Logcat et tracez les endroits où votre application se bloque.
0
JeffNhan