android - डिबग मोड में लॉन्च होने पर एंड्रॉइड ऐप क्रैश हो जाता है




android-studio debugging (10)

जब मैं डीबग मोड में चलता हूं तो ऐप क्रैश हो जाता है, लेकिन जब मैं इसे सामान्य रूप से चलाता हूं तो यह काम करता है। मुझे लगता है कि समस्या तब होती है जब डिबगर संलग्न होता है।

लॉग इन करें:

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

Runable.run () से ब्रेकपॉइंट हटाकर मेरे लिए समस्या हल की। मैं Runable.run () के अंदर रनटाइम पर ब्रेकप्वाइंट का उपयोग करने में सक्षम था। लेकिन संकलन के समय नहीं


इसी मुद्दे में भाग गया, लेकिन मेरे ब्रेकपॉइंट नेस्टेड फ़ंक्शन में पहली पंक्ति थी तो इसे अन्यत्र कैसे स्थानांतरित किया जाए?

मैंने एक अस्थायी निजी विधि बनाई और उस विधि का एक आह्वान किया जो फ़ंक्शन में पहली चीज थी और फिर मैंने उस पद्धति में ब्रेकपॉइंट सेट किया।

जब मैंने डिबगिंग समाप्त की तो मैंने विधि और इसके आह्वान को हटा दिया।


मेरा मुद्दा यह था कि आयात के बयान में मेरा ब्रेकपॉइंट था


मेरे आवेदन पर सभी डीबग पॉइंट हटाएं ठीक काम करता है आप सभी डीबग पॉइंट को निकालने के लिए ctrl + shift + f6 का उपयोग कर सकते हैं


मेरे लिए, यह तब हुआ जब मेरे पास एक नेस्टेड फ़ंक्शन में एक ब्रेकपॉइंट है। मेरे मामले में, यह Runnable.run () {} के भीतर था। यकीन नहीं होता कि यह अन्य नेस्टेड फ़ंक्शन में होता है।

उदाहरण:

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

यदि रन () फ़ंक के अंदर किसी भी लाइन पर एक ब्रेकपॉइंट है, तो यह A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread साथ क्रैश हो जाता है 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 कोड में से कोई भी (कंस्ट्रक्टर से पहले) चलाया गया था।

समाधान को विराम बिंदु को दूर करना है (और इसे कहीं और रखना है)।

संपादित करें:

उल्लेख करना भूल गए, यह API25 से बंधा हुआ है, लेकिन API26 और API27 के लिए भी रिपोर्ट किया गया है।

संपादित करें:

एक और उपाय है इंस्टेंट रन को निष्क्रिय करना, लेकिन कृपया नीचे के लिए toobsco42 क्रेडिट दें।


मैंने सभी ब्रेकप्वाइंट हटा दिए और यह काम किया, एमुलेटर पिक्सेल एपीआई 25 के साथ परीक्षण किया।

सभी विराम बिंदुओं को हटाने के लिए:

  • डीबगर विकल्प पर जाएं।

  • लाल आइकन पर क्लिक करें जो डीबग को रोकने के लिए नीचे है।

  • आपको वहां एक विंडो दिखाई देगी जिसमें आप सभी ब्रेकप्वाइंट हटा सकते हैं।

इस पोस्ट में और देखें: https://.com/a/42478994/5749462


यह डिबग पॉइंट के साथ कुछ समस्या के कारण है। सभी डिबग पॉइंट हटा दें और फिर यह काम करना चाहिए।


यह वास्तव में अजीब है, मैंने इंस्टेंट रन को अक्षम कर दिया और समस्या स्वयं हल हो गई।


समस्या एंड्रॉइड संस्करण 7.x के साथ संबंधित है, मैंने नेस्टेड फ़ंक्शन में सभी ब्रेकप्वाइंट को हटा दिया और यह काम किया, एंड्रॉइड संस्करण 6.0 के साथ भी परीक्षण किया गया, और यह समस्या के बिना काम कर रहा है।

Google डेवलपर्स टीम की प्रतिक्रिया के अनुसार, यह 12/1/2016 को तय किया गया था और अगले रिलीज में लागू किया जाएगा।


विंडो 5: डीबग में, "ब्रेक व्यू देखें" बटन का उपयोग करें

उनमें से UnSelectAll





android-debugging