Lorsque je lance le mode debug , l'application se bloque, mais lorsque je l'exécute normalement, cela fonctionne ... Je pense que le problème se produit lorsque le débogueur est connecté.
Bûche:
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x7f44a18400, GetDebugThread()=0x7f44a18400) Expected event thread
A/art: art/runtime/runtime.cc:422] Runtime aborting...
A/art: art/runtime/runtime.cc:422] Aborting thread:
A/art: art/runtime/runtime.cc:422] "JDWP" prio=5 tid=4 WaitingForDebuggerSend
A/art: art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x12c60280 self=0x7f44a18400
A/art: art/runtime/runtime.cc:422] | sysTid=24137 Nice=0 cgrp=default sched=0/0 handle=0x7f4b904450
A/art: art/runtime/runtime.cc:422] | state=R schedstat=( 132066712 16401043 106 ) utm=9 stm=2 core=3 HZ=100
A/art: art/runtime/runtime.cc:422] | stack=0x7f4b80a000-0x7f4b80c000 stackSize=1005KB
A/art: art/runtime/runtime.cc:422] | held mutexes= "abort lock"
A/art: art/runtime/runtime.cc:422] native: #00 pc 000000000047e2cc /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
A/art: art/runtime/runtime.cc:422] native: #01 pc 000000000047e2c8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
A/art: art/runtime/runtime.cc:422] native: #02 pc 0000000000452434 /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+480)
A/art: art/runtime/runtime.cc:422] native: #03 pc 00000000004403ac /system/lib64/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+56)
A/art: art/runtime/runtime.cc:422] native: #04 pc 0000000000440228 /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+668)
A/art: art/runtime/runtime.cc:422] native: #05 pc 0000000000433bfc /system/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+148)
A/art: art/runtime/runtime.cc:422] native: #06 pc 00000000000e597c /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1592)
A/art: art/runtime/runtime.cc:422] native: #07 pc 00000000002f8458 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState24AcquireJdwpTokenForEventEm+624)
A/art: art/runtime/runtime.cc:422] native: #08 pc 00000000002f7b1c /system/lib64/libart.so (_ZN3art4JDWP9JdwpState29SendRequestAndPossiblySuspendEPNS0_9ExpandBufENS0_17JdwpSuspendPolicyEm+248)
A/art: art/runtime/runtime.cc:422] native: #09 pc 00000000002fcb08 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState16PostClassPrepareEPNS_6mirror5ClassE+1380)
A/art: art/runtime/runtime.cc:422] native: #10 pc 0000000000124a9c /system/lib64/libart.so (_ZN3art11ClassLinker11DefineClassEPNS_6ThreadEPKcmNS_6HandleINS_6mirror11ClassLoaderEEERKNS_7DexFileERKNS9_8ClassDefE+804)
A/art: art/runtime/runtime.cc:422] native: #11 pc 0000000000381d04 /system/lib64/libart.so (_ZN3artL25DexFile_defineClassNativeEP7_JNIEnvP7_jclassP8_jstringP8_jobjectS7_S7_+344)
A/art: art/runtime/runtime.cc:422] native: #12 pc 00000000001dd40c /system/framework/arm64/boot-core-libart.oat (???)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClassNative(Native method)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClass(DexFile.Java:296)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.loadClassBinaryName(DexFile.Java:289)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexPathList.findClass(DexPathList.Java:418)
A/art: art/runtime/runtime.cc:422] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:54)
A/art: art/runtime/runtime.cc:422] at com.Android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.Java:90)
A/art: art/runtime/runtime.cc:422] at com.Android.tools.fd.runtime.IncrementalClassLoader.findClass(IncrementalClassLoader.Java:62)
A/art: art/runtime/runtime.cc:422] at Java.lang.ClassLoader.loadClass(ClassLoader.Java:380)
A/art: art/runtime/runtime.cc:422] at Java.lang.ClassLoader.loadClass(ClassLoader.Java:367)
A/art: art/runtime/runtime.cc:422] at Java.lang.ClassLoader.loadClass(ClassLoader.Java:367)
A/art: art/runtime/runtime.cc:422] at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)
A/art: art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock mutator lock
Pour moi, cela s'est produit quand j'ai un point d'arrêt dans une fonction imbriquée. Dans mon cas, c'était dans Runnable.run () {}. Pas sûr que cela se produise dans d'autres fonctions imbriquées.
Exemple:
public class TouchEvent {
public boolean HandleEvent(MotionEvent Event) {
new Runnable() { @Override public void run() {
int i=5;
i++;
}};
}
}
S'il y a un point d'arrêt sur une ligne quelconque de la fonction run (), elle se bloque avec l'erreur A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
.
Cette erreur se produit la première fois que la classe est rencontrée, PAS lorsque le point d'arrêt est atteint. Cela m'est donc arrivé lorsque je suis entré dans une ligne qui avait new TouchEvent();
, avant qu'aucun code de TouchEvent ne soit exécuté (avant le constructeur).
La solution consiste à supprimer le point de rupture (et le mettre ailleurs).
Modifier:
Oublié de mentionner, il semble être lié à API25, mais a été signalé pour API26 et API27 aussi.
Modifier:
Une autre solution consiste à désactiver Instant Run , mais merci d'en attribuer le crédit à toobsco42 ci-dessous.
Dans mon cas, j'ai dû désactiver Instant Run. Il semble qu'Instant Run ait toutes sortes d'effets secondaires et cela peut en être un.
Le problème est lié à la version Android 7.x, j'ai supprimé tous les points d'arrêt des fonctions imbriquées et cela a fonctionné, testé avec la version 6.0 d'Android aussi, et cela fonctionne sans problème.
Selon la réponse de l'équipe de développeurs Google, il a été corrigé le 12/01/2016 et sera appliqué dans la prochaine version.
J'ai supprimé tous les points d'arrêt et cela a fonctionné, testé avec Emulator Pixel API 25.
Pour supprimer tous les points d'arrêt:
Aller à l'option de débogage.
Cliquez sur l'icône rouge ci-dessous pour arrêter le débogage.
Vous verrez une fenêtre où vous pouvez supprimer tous les points d'arrêt.
Voir plus dans cet article: https://stackoverflow.com/a/42478994/5749462
Cela est dû à un problème avec les points de débogage. Supprimez tous les points de débogage et cela devrait alors fonctionner.
C'est vraiment bizarre, j'ai désactivé Instant Run et le problème s'est résolu tout seul.
Mon problème était que j'avais un point d'arrêt à la déclaration d'importation
La solution la plus simple est de trouver un autre périphérique ou un autre émulateur (merci à AVD Manager de choisir) qui fonctionnera comme un charme sans solution de rechange
Supprimer le point d'arrêt de Runnable.run () a résolu le problème pour moi. J'ai pu utiliser des points d'arrêt au moment de l'exécution dans Runnable.run (). Mais pas au moment de la compilation
Commencer à planter uniquement lors du démarrage avec le débogueur. Android Studio 2.3.2 redémarré ... continue de planter. Fonctionne bien en mode Exécution. Je mets dans un Log.d () juste après onCreate ... et ça résout le problème! Allez comprendre!
Couru dans ce même problème, mais mon point d'arrêt était la première ligne de la fonction imbriquée alors comment le déplacer ailleurs?
J'ai créé une méthode privée temporaire et en ai fait un appel la première chose dans la fonction, puis j'ai défini le point d'arrêt dans cette méthode.
Lorsque j'ai terminé le débogage, j'ai supprimé la méthode et son invocation.
c'est une longue tentative, mais pour moi, lorsque j'ai une instruction d'importation qui n'est pas utilisée et que le code d'importation est utilisé pour le code des appels réseau, il s'est écrasé mais lors de sa suppression, le code a pu déboguer normalement.