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


290

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

लॉग इन करें:

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

मैं नहीं जानता कि क्या खुशी है, लेकिन अब यह काम करते हैं। जादू!!!
मैक्सिम राबटसन

मैं उसी समस्या में भाग गया और यह पूरा बी.एस. यहां तक ​​कि एमुलेटर को पुनरारंभ करने से भी मदद नहीं मिली। कोड का एक गुच्छा निकालने और फिर एक बार में एक ब्लॉक में पढ़ने के बाद, मैं मूल कोड पर वापस आ गया और समस्या दूर हो गई। मुझे लगता है कि वर्ग वस्तु को फिर से बनाने की जरूरत है। एक संकलन गलत हो गया। मुझे लगता है कि एक परियोजना "साफ" शायद यह तय हो गया होता।
डाकुसन

लगभग 3 साल बाद, यह बग अभी भी मौजूद है।
अत्तिला तानी

जवाबों:


321

मेरे लिए, यह तब हुआ जब मेरे पास एक नेस्टेड फ़ंक्शन में एक ब्रेकपॉइंट है। मेरे मामले में, यह भीतर था 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

यह त्रुटि पहली बार तब होती है जब वर्ग का सामना होता है, तब नहीं जब ब्रेकपॉइंट मारा जाता है। तो यह मेरे लिए तब हुआ जब मैंने एक लाइन में कदम रखा new TouchEvent();, जो टचविवेंट के किसी भी कोड को चलाने से पहले (कंस्ट्रक्टर से पहले) था।

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

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

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

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

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


28
यह code.google.com पर बताया गया है और मैं इसे ठीक करने पर काम कर रहा हूं। code.google.com/p/android/issues/detail?id=227513
डाकएन

4
मैं sdk 23 और निर्माण उपकरण 25.0.1 - एक ही समस्या है। ब्रेकप्वाइंट को हटाने से यह ठीक हो जाता है।
Bonton255

2
आप ब्रेकपॉइंट को भी हटा सकते हैं, डिबग को दबा सकते हैं, फिर एक बार ऐप ओके चल रहा है, इसे वापस उस स्थान पर जोड़ें जो आप चाहते थे। ठीक काम करता है, बस फिर से शुरू करने से पहले इसे हटाने के लिए याद रखें।
धूमकेतु

3
मैंने एमुलेटर स्विच किया और समस्या दूर हो गई - मूल एमुलेटर पर वापस आ गया और समस्या वापस आ गई। एक बार समस्या केवल इसे दूर करने के लिए प्रकट होती है (सभी ब्रेकप्वाइंट्स को साफ़ करने के अलावा - कोई धन्यवाद नहीं) तत्काल रन को अक्षम करना है। समस्या एमुलेटर पर इंस्टेंट रन को फिर से सक्षम करने से समस्या वापस आ जाती है।
एंडी

11
मुद्दा 7.1.1 पर अन्य थ्रेड्स में ब्रेकपॉइंट का मिश्रण है, जिस पर तुरंत रन मिलता है। इसलिए उपरोक्त 3 में से कोई भी परिवर्तन करें और यह दुर्घटनाग्रस्त हो जाएगा।
वारपज़िट

187

मेरे मामले में मुझे इंस्टेंट रन को अक्षम करना पड़ा। ऐसा लगता है कि इंस्टेंट रन के सभी प्रकार के दुष्प्रभाव हैं और यह उनमें से एक हो सकता है।


47
नोट, Android Studio में, फ़ाइल -> सेटिंग्स -> बिल्ड, निष्पादन, परिनियोजन -> इंस्टेंट रन के अंतर्गत है।
शॉर्टस्टफसुशी

यह मेरा मामला भी था! साभार: D
francisco_ssb

9
मेरे जीवन का वह एक घंटा था जिसे मैं फिर कभी नहीं देखूंगा
गैरी बेक

3
कई मशीनों पर काम करते हुए, Google लगातार इंस्टेंट रन को फिर से लागू करने के साथ, मुझे इसकी आवश्यकता है कि मुझे लगभग 4216% अधिक कुशल बनाने की आवश्यकता है जब यह अंततः मेरे खोए हुए समय को वापस पाने के करीब आता है।
एंथनी

बहुत बहुत धन्यवाद। उत्तर के रूप में टिक किया जाना चाहिए;) यह बदसूरत विशेषता आपको पांच प्रतिशत देती है और आपको सौ डॉलर बर्बाद करती है :))
अमीर ज़ियारती

50

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

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


हर संभव कोशिश की, ऊपर टिप्पणी मदद की! आपका बहुत बहुत धन्यवाद!
स्टेपन मक्सिमोव

इसने काम किया, यह स्वीकार किया जाना चाहिए। धन्यवाद ! इसके अलावा, आप इंस्टेंट रन को एक अन्य समाधान के रूप में हटा सकते हैं
Özer Deczcan

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

संभवतः एक ईमेल प्रतिक्रिया थी, अभी भी इस बग को प्राप्त कर रहा है और ब्रेकप्वाइंट को निकालना पड़ा
जिम फैक्टर

Android 7.1.1 अभी भी Pixelbook पर Android का संस्करण है। मुझे यह हर समय पिक्सेलबुक पर एंड्रॉइड स्टूडियो में विकसित होता है!
जेफ़ लॉकहार्ट

21

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

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

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

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

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

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


16

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


3
आप आसानी से सभी ब्रेकप्वाइंट को अनमार्क करने के लिए शॉर्टकट CTRL + SHIFT + F8 का उपयोग कर सकते हैं।
ब्रुनेरमोनलमेइडा

यह शॉर्टकट आपके OS और कीबोर्ड सेटिंग्स के आधार पर हर समय काम नहीं करता है
लौ 3

8

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


हां, एंड्रॉइड 7.0 से नीचे के उपकरणों पर तुरंत चलाने से यह समस्या काफी आसानी से हो सकती है
egorikem

4

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


और तीसरी बार की तरह इस में भाग गया ... मूल रूप से, किसी भी ब्रेकपॉइंट कभी-कभी इसका कारण बन सकता है, इस प्रकार समाधान सभी / हाल ही के ब्रेकप्वाइंट को हटाने के लिए हो सकता है
egorikem

3

यहां छवि विवरण दर्ज करें

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

यहां छवि विवरण दर्ज करें

उनमें से UnSelectAll

यहां छवि विवरण दर्ज करें


1

सबसे सरल समाधान एक और डिवाइस या एमुलेटर ढूंढने की कोशिश कर रहा है (धन्यवाद AVD प्रबंधक हमारे पास एक विकल्प है) जो वर्कआउट्स के बिना आकर्षण के रूप में काम करेगा


1

मेरा ऐप भी केवल डिबग मोड में क्रैश हो गया। 3.5 संस्करण के लिए - "इंस्टेंट रन" को "लागू परिवर्तन" के साथ बदल दिया गया था, इसलिए मैं इसे अक्षम नहीं कर सका। मेरा समाधान एप्लिकेशन को सामान्य रूप से (हरे तीर के साथ) लॉन्च करना था, जिस स्थान पर यह दुर्घटनाग्रस्त हो गया था, उसके बाद नेविगेट करें और फिर डीबगर को इसमें संलग्न करें:
यहां छवि विवरण दर्ज करें


0

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


0

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

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

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


0

यह एक लंबा शॉट है, लेकिन मेरे लिए, जब मेरे पास एक आयात विवरण है जिसका उपयोग नहीं किया जा रहा है, और उस आयात में नेटवर्क कॉल चलाने वाला कोड है, तो यह मेरे लिए दुर्घटनाग्रस्त हो गया लेकिन इसे हटाते समय, कोड सामान्य रूप से डीबग करने में सक्षम था।


0

डिबगर से शुरू होने पर ही दुर्घटनाग्रस्त हो जाना। Android Studio 2.3.2 को पुनरारंभ किया गया ... दुर्घटनाग्रस्त रहा। रन मोड में ठीक चलता है। मैं एक log.d डाल () onCreate के ठीक बाद ... और यह समस्या को मंजूरी दे दी! जाओ पता लगाओ!


0

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.