Quando executo no modo de depuração , o aplicativo falha, mas quando apenas o executo normalmente, ele funciona. Eu acho que o problema acontece quando o depurador está anexado.
Registro:
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
android
android-studio
debugging
android-debug
android-debugging
Maxim Rabtsun
fonte
fonte
Respostas:
Para mim, ocorreu quando eu tenho um ponto de interrupção em uma função aninhada. No meu caso, estava dentro
Runnable.run() {}
. Não tenho certeza se isso acontece em outras funções aninhadas.Exemplo:
Se houver um ponto de interrupção em qualquer linha dentro da função run (), ele trava com o erro
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
.Este erro ocorre na primeira vez que a classe é encontrada, NÃO quando o ponto de interrupção é atingido. Assim, ocorreu-me quando entrei em uma linha que havia
new TouchEvent();
antes de qualquer código do TouchEvent ser executado (antes do construtor).A solução é remover o ponto de interrupção (e colocá-lo em outro lugar).
Editar:
Esqueci de mencionar, ele parece estar vinculado à API25, mas também foi relatado para API26 e API27.
Editar:
Outra solução é desabilitar o Instant Run , mas dê o crédito @ toobsco42 para isso abaixo.
fonte
No meu caso, tive que desativar o Instant Run. Parece que o Instant Run tem todos os tipos de efeitos colaterais e este pode ser um deles.
fonte
O problema está relacionado à versão 7.x do Android, removi todos os pontos de interrupção nas funções aninhadas e funcionou, testado também com a versão 6.0 do Android e está funcionando sem problemas.
De acordo com a resposta da equipe de desenvolvedores do Google, foi corrigido em 1/12/2016 e será aplicado na próxima versão.
fonte
Eu removi todos os pontos de interrupção e funcionou, testado com a API Emulator Pixel 25.
Para remover todos os pontos de interrupção:
Vá para a opção Depurador.
Clique no ícone vermelho abaixo para parar a depuração.
Você verá uma janela onde poderá remover todos os pontos de interrupção.
Veja mais neste post: https://stackoverflow.com/a/42478994/5749462
fonte
Isso ocorre devido a algum problema com os pontos de depuração. Remova todos os pontos de depuração e, em seguida, deve funcionar.
fonte
É realmente estranho, desabilitei o Instant Run e o problema se resolveu.
fonte
Meu problema foi que eu tinha um ponto de interrupção na declaração de importação
fonte
Na janela 5: Depuração, use o botão "Exibir pontos de interrupção"
UnSelectAll deles
fonte
A solução mais simples é tentar encontrar outro dispositivo ou emulador (graças ao AVD Manager, temos uma opção) que funcionará como um encanto sem soluções alternativas
fonte
Meu aplicativo também travou apenas no modo de depuração. Quanto à versão 3.5 - "Instant Run" foi substituído por "Apply Changes", então não pude desativá-lo. Minha solução foi iniciar o aplicativo normalmente (com a seta verde), navegar logo após o local em que ele travava e anexar o depurador a ele:
fonte
A remoção do ponto de interrupção do Runable.run () resolveu o problema para mim. Consegui usar pontos de interrupção em tempo de execução dentro de Runable.run (). Mas não em tempo de compilação
fonte
Encontrei esse mesmo problema, mas meu ponto de interrupção foi a primeira linha na função aninhada. Como movê-lo para outro lugar?
Criei um método privado temporário e fiz uma invocação desse método a primeira coisa na função e, em seguida, defini o ponto de interrupção nesse método.
Quando terminei a depuração, removi o método e sua invocação.
fonte
é um tiro no escuro, mas para mim, quando tenho uma instrução de importação que não está sendo usada e que possui código que executa chamadas de rede, ela travou para mim, mas ao removê-la, o código pôde depurar normalmente.
fonte
Começando a falhar apenas ao iniciar com o depurador. Reiniciado o Android Studio 2.3.2 ... continuava travando. Executa bem no modo de execução. Coloquei um Log.d () logo após o onCreate ... e isso resolveu o problema! Vai saber!
fonte
Excluir Todos os pontos de depuração no meu aplicativo funciona bem. Você pode usar ctrl + shift + f6 para remover todos os pontos de depuração
fonte