Приложение для Android при запуске в режиме отладки


когда я бегу в debug режим приложение падает, но когда я запустить его нормально работает. Я думаю, что проблема возникает, когда отладчик подключен.

Log:

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
13 241

13 ответов:

для меня это произошло, когда у меня есть точка останова во вложенной функции. В моем случае, это было в пределах выполнимого.работать.}{ )( Не уверен, что это происходит в других вложенных функциях.

пример:

public class TouchEvent {
    public boolean HandleEvent(MotionEvent Event) {
        new Runnable() { @Override public void run() {
            int i=5;
            i++;
        }};
    }
}

Если есть точка останова на любой линии внутри run () func, он падает с ошибкой A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread .

эта ошибка возникает при первом обнаружении класса, а не при достижении точки останова. Так это произошло для меня, когда я вступил в линию, которая имела new TouchEvent();, перед запуском любого кода TouchEvent (перед конструктором).

решение состоит в том, чтобы удалить точку останова (и поместить ее в другое место).

Edit:

забыл упомянуть, что он, похоже, привязан к API25, но также сообщалось о API26 и API27.

Edit:

другое решение-отключить Мгновенный Запуск, но, пожалуйста, дайте toobsco42 кредит для этого ниже.

в моем случае мне пришлось отключить мгновенный запуск. Кажется, что мгновенный запуск имеет все виды побочных эффектов, и это может быть одним из них.

проблема связана с Android версии 7.x, я удалил все точки останова во вложенных функциях, и он работал, тестировался с Android версии 6.0 тоже, и он работает без проблем.

согласно ответу команды разработчиков google, он был исправлен 12/1/2016 и будет применен в следующем выпуске.

Я удалил все точки останова, и это сработало, протестировано с помощью эмулятора Pixel API 25.

удалить все точки останова:

  • перейти к опции отладчика.

  • нажмите на красную иконку, которая находится ниже, чтобы остановить отладку.

  • вы увидите окно, в котором вы можете удалить все точки останова.

Смотрите больше в этом посте:https://stackoverflow.com/a/42478994/5749462

Это связано с некоторой проблемой с точками отладки. Удалить все точки отладки, а затем он должен работать.

Это действительно странно, я отключил мгновенный запуск, и проблема решена сама собой.

моя проблема заключалась в том, что у меня была точка останова при импорте оператора

самое простое решение пытается найти другое устройство или эмулятор (спасибо AVD Manager у нас есть выбор), который будет работать как шарм без обходных путей

enter image description here

в окне 5: отладка используйте кнопку "Просмотр точек останова"

enter image description here

отменить выбор из них

enter image description here

удаление точки останова из Runable.run () решил проблему для меня. Я смог использовать точки останова во время выполнения внутри Runable.работать.)( Но не во время компиляции

столкнулся с этой же проблемой, но моя точка останова была первой строкой во вложенной функции, так как переместить ее в другое место?

Я создал временный частный метод и сделал вызов этого метода первым делом в функции, а затем я установил точку останова в этом методе.

когда я закончил отладку, я удалил метод и его вызов.

Это длинный выстрел, но для меня, когда у меня есть оператор импорта, который не используется, и этот импорт имеет код, который запускает сетевые вызовы, он разбился для меня, но при его удалении код смог нормально отлаживаться.

запуск сбоя только при запуске с отладчиком. Перезапущена Android Studio 2.3.2...все время рушится. Работает нормально в режиме запуска. Я положил в журнал.d () сразу после onCreate...и это прояснило проблему! Иди разберись!