Hata ayıklama modunda başlatıldığında Android uygulaması kilitleniyor


290

Ben çalıştırdığınızda ayıklama modu uygulaması çöküyor, ama sadece normal şekilde çalıştırdığınızda çalışıyor. Bence hata ayıklayıcı bağlandığında sorun olur.

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

Ne olduğunu bilmiyorum, ama şimdi çalış. Sihirli !!!
Maxim Rabtsun

Aynı problemle karşılaştım ve tam BS oldu. Emülatörün yeniden başlatılması bile yardımcı olmadı. Bir grup kodu çıkardıktan sonra tek seferde bir blokta okuduktan sonra, orijinal koda geri döndüm ve sorun ortadan kalktı. Sınıf nesnesinin yeniden inşa edilmesi gerektiğini hissettim. Bir derleme yanlış gitti. Ben bir proje "temiz" muhtemelen giderir tahmin ediyorum.
Dakusan

Neredeyse 3 yıl sonra, bu böcek hala mevcut.
Attila Tanyi

Yanıtlar:


321

Benim için, iç içe geçmiş bir işlevde bir kesme noktası olduğunda meydana geldi. Benim durumumda, içerideydi Runnable.run() {}. Diğer iç içe işlevlerde olup olmadığından emin değilim.

Misal:

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

Run () işlevinin içindeki herhangi bir satırda bir kesme noktası varsa, hata ile kilitlenir A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread.

Bu hata, kesme noktası vurulduğunda DEĞİL, sınıfla ilk karşılaşıldığında ortaya çıkar. Bu yüzden new TouchEvent();, TouchEvent kodlarından herhangi biri çalıştırılmadan önce (yapıcıdan önce) olan bir satıra adım attığımda benim için meydana geldi .

Çözüm kırılma noktasını kaldırmak (ve başka bir yere koymak).

Düzenle:

Bahsetmeyi unuttum, API25'e bağlı gibi görünüyor, ancak API26 ve API27 için de rapor edildi.

Düzenle:

Başka bir çözüm Anında Çalıştır'ı devre dışı bırakmaktır, ancak lütfen aşağıda bunun için @ toobsco42 kredisi verin .


28
Bu code.google.com rapor edilmiştir ve ben orada düzeltilmesi için çalışıyorum. code.google.com/p/android/issues/detail?id=227513
Dakusan

4
SDK 23 var ve araçlar 25.0.1 inşa - aynı sorun. Kesme noktalarını kaldırmak bunu düzeltir.
Bonton255

2
Kesme noktasını da kaldırabilir, Hata Ayıkla'ya basabilir, ardından uygulama Tamam olduğunda, istediğiniz noktaya geri ekleyebilirsiniz. Tamam çalışıyor, sadece yeniden başlatmadan önce kaldırmayı unutmayın.
kuyruklu balık

3
Emülatörleri değiştirdim ve sorun kayboldu - orijinal emülatöre geri döndüm ve sorun geri geldi. Sorun üstesinden gelmenin tek yolu göründüğünde (tüm kesme noktalarını temizlemenin yanı sıra - teşekkürler) Anında Çalışmayı devre dışı bırakmaktır. Sorun öykünücüsünde Anında Çalıştır'ı yeniden etkinleştirmek sorunu geri getirir.
Andy

11
Sorun, 7.1.1'deki diğer iş parçacıklarındaki kesme noktalarının anında çalıştırılmasıyla bir karışımı. Bu yüzden yukarıdaki 3'ten herhangi birini değiştirin ve çökmeyi durduracaktır.
Warpzit

187

Benim durumumda Anında Çalıştırmayı devre dışı bırakmak zorunda kaldım. Anında Çalıştırmanın her türlü yan etkisi vardır ve bu onlardan biri olabilir.


47
Android Studio'da Dosya -> Ayarlar -> Derleme, Yürütme, Dağıtım -> Anında Çalıştırma altında olduğunu unutmayın.
shortstuffsushi

Benim durumum da buydu! Teşekkürler: D
francisco_ssb

9
Hayatımın bir saatiydi, bir daha asla göremeyeceğim
Gary Bak

3
Birden fazla makinede çalışarak, Google sürekli çalışmayı sürekli olarak yeniden uygularken, sonunda kayıp zamanımı geri almak için uzaktan yaklaşmaya çalıştığımda kabaca% 4216 daha verimli olmamı istiyorum.
Anthony

çok teşekkürler. cevap olarak işaretlenmelidir;) Bu çirkin özellik size beş kuruş verir ve size yüz dolar
harcar

50

Sorun Android sürüm 7.x ile ilgilidir, iç içe fonksiyonlardaki tüm kesme noktalarını kaldırdım ve çalıştı, Android sürüm 6.0 ile de test edildi ve sorunsuz çalışıyor.

Google geliştiricileri ekibinin yanıtına göre, 12/1/2016 tarihinde düzeltildi ve bir sonraki sürümde uygulanacak.


denedim mümkün, yukarıdaki yorum yardımcı oldu! çok teşekkürler!
Stepan Maksymov

İşe yaradı, bu cevap kabul edilmelidir. Teşekkürler ! Ayrıca, Instant Run'ı başka bir çözüm olarak kaldırabilirsiniz
Özer Özcan

Bunu desteklemek için bir bağlantı eklenmiş olsaydı iyi olurdu;) "Google geliştiriciler ekibinin yanıtına göre, 12/1/2016 tarihinde düzeltildi ve bir sonraki sürümde uygulanacak."
jabu.hlong

Muhtemelen bir e-posta yanıtıydı, bugün hala bu hatayı alıyordu ve kesme noktalarını kaldırmak zorunda kaldı
Jim Factor

Android 7.1.1, hala Pixelbook'ta çalışan Android sürümüdür. Bunu her zaman Pixelbook'taki Android Studio'da geliştiriyorum!
Jeff Lockhart

21

Tüm kesme noktalarını kaldırdım ve çalıştı, Emulator Pixel API 25 ile test edildi.

Tüm kesme noktalarını kaldırmak için:

  • Hata Ayıklayıcı seçeneğine gidin.

  • Hata ayıklamayı durdurmak için aşağıdaki kırmızı simgeye tıklayın.

  • Orada tüm kesme noktalarını kaldırabileceğiniz bir pencere göreceksiniz.

Bu yayında daha fazlasını görün: https://stackoverflow.com/a/42478994/5749462


16

Bunun nedeni hata ayıklama noktalarındaki bazı sorunlardır. Tüm hata ayıklama noktalarını kaldırın ve sonra çalışmalıdır.


3
Tüm kesme noktalarını kolayca kaldırmak için CTRL + ÜST KRKT + F8 kısayolunu kullanabilirsiniz.
brunoramonalmeida

İşletim sisteminize ve klavye ayarlarınıza bağlı olarak bu kısayol her zaman çalışmaz
flame3

8

Gerçekten tuhaf, Anında Çalıştırmayı devre dışı bıraktım ve sorun çözüldü.


Evet, Android 7.0'ın altındaki cihazlarda anında çalıştırma bu soruna kolayca neden olabilir
egorikem

4

Benim sorunum ithalat beyanında bir kırılma noktası olmasıydı


Ve üçüncü kez olduğu gibi buna koştum ... Temel olarak, herhangi bir kesme noktası bazen buna neden olabilir, bu nedenle çözüm sadece tüm / son kesme noktalarını kaldırmak olabilir
egorikem

3

resim açıklamasını buraya girin

5. Pencerede Hata Ayıkla, "Kesme Noktalarını Görüntüle" düğmesini kullanın

resim açıklamasını buraya girin

Hepsini seç

resim açıklamasını buraya girin


1

En basit çözüm, geçici çözümler olmadan cazibe olarak çalışacak başka bir cihaz veya emülatör bulmaya çalışıyor (AVD Manager sayesinde bir seçeneğimiz var)


1

Uygulamam yalnızca hata ayıklama modundayken kilitlendi. 3.5 sürümü gelince - "Anında Çalıştır" yerine "Değişiklikleri Uygula" ile değiştirildi, bu yüzden devre dışı bırakamadım. Benim çözümüm uygulamayı normal olarak (yeşil okla) başlatmak, çöktüğü yerden hemen sonra gezinmek ve daha sonra hata ayıklayıcıyı ona eklemekti:
resim açıklamasını buraya girin


0

Kesme noktasını Runable.run () 'dan kaldırmak sorunu benim için çözdü. Kesme noktalarını Runable.run () içinde çalışma zamanında kullanabildim. Ama derleme zamanında değil


0

Aynı sorunla karşılaştım ama kesme noktam iç içe fonksiyondaki ilk satırdı, bu yüzden başka bir yere nasıl taşınır?

Geçici bir özel yöntem oluşturdum ve işlevdeki ilk şey bu yöntemin çağrılmasını sağladım ve sonra bu yöntemde kesme noktasını ayarladım.

Hata ayıklamayı bitirdiğimde yöntemi ve çağrışımını kaldırdım.


0

uzun bir çekimdir ama benim için, kullanılmayan bir içe aktarma ifadesi olduğunda ve bu içe aktarma işleminin ağ çağrılarını çalıştıran bir kodu olduğunda, benim için çöktü, ancak kaldırırken kod normal olarak hata ayıklamayı başardı.


0

Sadece hata ayıklayıcı ile başlarken çökmeye başlıyor. Android Studio 2.3.2 yeniden başlatıldı ... çökmeye devam etti. Çalıştırma modunda iyi çalışır. OnCreate'den hemen sonra bir Log.d () girdim ve sorunu çözdüm! Git şekil!


0

Uygulamamdaki tüm hata ayıklama noktalarını iyi çalışır, tüm hata ayıklama noktalarını kaldırmak için ctrl + shift + f6 tuşlarını kullanabilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.