J'utilise Android Studio pour développer mes applications.
Depuis que j'ai mis à niveau mon HTC One M8 vers Lollipop, je ne peux pas l'utiliser pour tester mes applications par "Exécuter l'application" dans Android Studio. Je reçois cette erreur et rien ne se passe sur mon téléphone:
Launching application: com.project.GalleryActivity.
DEVICE Shell COMMAND: am start -n "com.project.GalleryActivity" -a Android.intent.action.MAIN -c Android.intent.category.LAUNCHER
Java.lang.UnsatisfiedLinkError: No implementation found for Java.lang.String Android.os.SystemProperties.native_get(Java.lang.String) (tried Java_Android_os_SystemProperties_native_1get and Java_Android_os_SystemProperties_native_1get__Ljava_lang_String_2)
at Android.os.SystemProperties.native_get(Native Method)
at Android.os.SystemProperties.get(SystemProperties.Java)
at com.htc.customization.HtcCustomizationManager.<init>(HtcCustomizationManager.Java)
at com.htc.customization.HtcCustomizationManager.<clinit>(HtcCustomizationManager.Java)
at Android.os.Environment$UserEnvironment.getCustomizationReader(Environment.Java)
at Android.os.Environment$UserEnvironment.isDynamicSwitchSupported(Environment.Java)
at Android.os.Environment$UserEnvironment.<init>(Environment.Java)
at Android.os.Environment.initForCurrentUser(Environment.Java)
at Android.os.Environment.<clinit>(Environment.Java)
at Android.os.Environment.getLegacyExternalStorageDirectory(Environment.Java)
at Android.os.Debug.<clinit>(Debug.Java)
at Android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.Java)
at Android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.Java)
at org.Apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.Java)
Java.lang.UnsatisfiedLinkError: Android.os.Debug
at Android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.Java)
at Android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.Java)
at org.Apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.Java)
Java.lang.UnsatisfiedLinkError: Android.os.Debug
at Android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.Java)
at Android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.Java)
at org.Apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.Java)
Aborted
Les paramètres de mon projet sont les suivants:
Cette technique fonctionnait parfaitement avant la mise à niveau et je n’ai rien changé depuis ce temps.
Je faisais face à la même erreur sur Asus Zenfone 5 (ASUS_T00J) avec Android 5.0. Pour moi, la solution a été de désactiver l'option "Vérifier les applications via USB" dans les "Options pour les développeurs" . Launcher n'est peut-être pas le problème puisque j'ai également essayé avec Google Now Launcher sans succès. Cela fonctionnait bien sur mon Nexus 5 avec Android 5.1
Solution: désactivez l'intégration ADB dans Android Studio.
Outils> Android> décochez Activer l'intégration ADB
Je ne sais pas quelle est la cause sous-jacente, mais j'ai découvert que je pouvais éviter ce problème en fermant toutes les applications en cours d'exécution sur le téléphone avant d'essayer d'exécuter mon code sur ma M8.
Utilisez-vous un lanceur tiers sur votre appareil? J'ai le même problème quand utiliser lanceur Aviate. Je reviens à BlinkFeed dans Personnaliser -> Paramètres de l’écran principal et mon déploiement sur le périphérique est stable maintenant . Classpath com.htc.customization.HtcCustomizationManager
me rend plus que ce problème lié au lanceur.
J'ai rencontré le même problème sur ASUS ME176C (Lollipop 5.0),
mais je l'ai résolu par en réglant "Sélectionner l'application de débogage" sur "Non" . Ensuite, appuyez sur apk comme d'habitude. Après cela, vous pouvez resélectionner "application de débogage" pour cibler l'application.
Je n'ai pas le représentant pour commenter, mais j'étais dans la même situation que @ user47625 mais mon "Verify Apps over USB" était déjà éteint. J'ai essayé d'élargir un peu cette réponse avec un raisonnement.
Au début, j’ai essayé de changer de lanceur et j’ai eu de la chance, mais c’est un hasard, c’est une solution qui ne convient pas. Le redémarrage du téléphone a permis quelques heures de travail serein.
Ensuite, j'ai trouvé sur Google une personne qui a déclaré:
S'il s'agit de ce bogue: le client DDMS se connecte avec un "Bonjour" lorsque le processus PM démarre et s’enregistre pour la première fois, mais avant d’avoir complètement initialisé tout le code natif. C'est une course en stock Android et s'y produit aussi
Donc, si cette course se produit, elle ne se produit pas à chaque fois, mais de temps en temps, je soupçonne quelque chose concernant l'interaction d'un élément sur Android. Je ne sais pas si c'est lié au processeur, RAM ou aux applications, mais sur mon Zenfone 2, la fermeture de toutes les applications en arrière-plan (1) et la libération de la mémoire (2) font l'affaire, me permettant de déboguer correctement l'application.
J'ai utilisé Clean Master, car Zenfone 2 est en stock, mais je suppose que tous les gestionnaires de mémoire peuvent le faire. Essaie
Sur mon HTC M8, j'ai résolu le problème en désactivant "Paramètres -> Options pour les développeurs -> Utiliser NuPlayer (expérimental)".
Ce que j'ai remarqué, c'est que lorsque j'essaie d'exécuter l'application créée il y a longtemps (il y a quelques années), je dois désactiver NuPlayer. Cependant, avec les nouvelles applications, je dois garder l'option cochée.
J'espère que cela t'aides....
J'ai découvert une solution de contournement pour résoudre ce problème
Recherchez le HTC Blink Home Launcher et désinstallez la mise à jour.
(ATTENTION: désinstaller la mise à jour du lanceur supprimera toutes les icônes et les widgets placés sur le lanceur)
Cela fonctionne pour moi et il peut maintenant être utilisé pour le débogage sans supprimer les applications multitâches ..__Cela devrait être un bogue causé par HTC? (J'utilise HTC Butterfly 2 et Android 5.0.2)
Sur un Asus ZenPad, 5.0.2, j'ai pu résoudre le problème en allant dans le gestionnaire de démarrage automatique d'Asus (Paramètres -> Gestion de l'alimentation -> Gestionnaire de démarrage automatique) et en permettant à mon application de démarrer automatiquement.
J'ai eu un succès raisonnable avec la solution de contournement ci-dessous.
Après chaque session de débogage avec votre application, accédez au terminal Android Studio:
> adb Shell am force-stop com.your.app.package
Je reçois encore parfois le Java.lang.UnsatisfiedLinkError
mais en suivant la commande ci-dessus plutôt qu'entre le processus build/Push apk/install et en essayant une session de débogage.
Pour moi, cela économise beaucoup de temps perdu à construire uniquement pour obtenir l'erreur. Si la commande ci-dessus ne fonctionne pas, il suffit de up-arrow
et de réexécuter la commande jusqu'à ce qu'elle fonctionne sans erreur.