Ứng dụng Android gặp sự cố khi khởi chạy ở chế độ gỡ lỗi


290

Khi tôi chạy trong chế độ gỡ lỗi , ứng dụng gặp sự cố, nhưng khi tôi chạy bình thường thì nó hoạt động. Tôi nghĩ rằng vấn đề xảy ra khi trình gỡ lỗi được đính kèm.

Nhật ký:

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

Tôi không biết những gì xảy ra, nhưng bây giờ làm việc đó. Ma thuật!!!
Maxim Rabtsun

Tôi gặp vấn đề tương tự và nó đã hoàn thành BS. Ngay cả việc khởi động lại trình giả lập cũng không giúp được gì. Sau khi loại bỏ một loạt mã và sau đó tập hợp lại thành một khối, tôi trở lại mã ban đầu và vấn đề đã biến mất. Tôi có cảm giác đối tượng lớp chỉ cần được xây dựng lại. Một biên dịch đã đi sai. Tôi đoán một dự án "sạch" có thể đã sửa nó.
Dakusan

Gần 3 năm sau, lỗi này vẫn còn.
Attila Tanyi

Câu trả lời:


321

Đối với tôi, nó xảy ra khi tôi có một điểm dừng trong hàm lồng nhau. Trong trường hợp của tôi, nó là trong Runnable.run() {}. Không chắc chắn nếu nó xảy ra trong các chức năng lồng nhau khác.

Thí dụ:

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

Nếu có một điểm dừng trên bất kỳ dòng nào bên trong func run (), nó sẽ gặp lỗi A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread.

Lỗi này xảy ra lần đầu tiên gặp phải lớp, KHÔNG phải khi điểm dừng được nhấn. Vì vậy, nó xảy ra với tôi khi tôi bước vào một dòng có new TouchEvent();trước khi bất kỳ mã nào của TouchEvent được chạy (trước khi hàm tạo).

Giải pháp là loại bỏ điểm dừng (và đặt nó ở nơi khác).

Biên tập:

Quên đề cập đến, nó dường như được gắn với API25, nhưng cũng đã được báo cáo cho API26 và API27.

Biên tập:

Một giải pháp khác là vô hiệu hóa Instant Run , nhưng vui lòng cung cấp tín dụng @ toobsco42 cho điều đó bên dưới.


28
Điều này đã được báo cáo trên code.google.com và tôi đang cố gắng khắc phục nó ở đó. code.google.com/p/android/issues/detail?id=227513
Dakusan

4
Tôi có sdk 23 và công cụ xây dựng 25.0.1 - cùng một vấn đề. Loại bỏ các điểm dừng sửa lỗi này.
Bonton255

2
Bạn cũng có thể xóa điểm dừng, nhấn Debug, sau đó khi ứng dụng đang chạy OK, hãy thêm nó trở lại vị trí bạn muốn. Hoạt động tốt rồi, chỉ cần nhớ gỡ bỏ nó trước khi bạn khởi động lại.
cá sao chổi

3
Tôi đã chuyển trình giả lập và vấn đề đã biến mất - chuyển về trình giả lập ban đầu và vấn đề đã trở lại. Khi vấn đề xuất hiện chỉ có cách khắc phục (bên cạnh việc xóa tất cả các điểm dừng - không cần cảm ơn) là tắt Instant Run. Kích hoạt lại Instant Run trên trình giả lập vấn đề đưa vấn đề trở lại.
Andy

11
Vấn đề là sự pha trộn các điểm dừng trong các luồng khác trên 7.1.1 với chạy ngay lập tức. Vì vậy, thay đổi bất kỳ trong số 3 ở trên và nó sẽ ngừng sụp đổ.
Warpzit

187

Trong trường hợp của tôi, tôi đã phải tắt Instant Run. Có vẻ như Instant Run có tất cả các loại tác dụng phụ và đây có thể là một trong số đó.


47
Lưu ý, trong Android Studio, phần nằm trong Tệp -> Cài đặt -> Xây dựng, Thực thi, Triển khai -> Chạy ngay lập tức.
shortthingsushi

Đó là trường hợp của tôi quá! Cảm ơn: D
francisco_ssb

9
Đó là một giờ trong cuộc đời tôi sẽ không bao giờ gặp lại
Gary Bak

3
Hoạt động trên nhiều máy, với việc Google liên tục áp dụng lại hoạt động tức thì, tôi cần nó giúp tôi hiệu quả hơn khoảng 4216% khi cuối cùng nó hoạt động để đến gần để lấy lại thời gian đã mất của tôi.
Anthony

cảm ơn rất nhiều nên được đánh dấu là câu trả lời;) tính năng xấu xí này mang lại cho bạn năm xu và lãng phí cho bạn một trăm đô la :))
Amir Ziarati

50

Vấn đề liên quan đến phiên bản Android 7.x, tôi đã loại bỏ tất cả các điểm dừng trong các chức năng lồng nhau và nó đã hoạt động, được thử nghiệm với phiên bản Android 6.0 và nó vẫn hoạt động mà không gặp vấn đề gì.

Theo phản hồi của nhóm nhà phát triển google, nó đã được sửa vào ngày 12/1/2016 và sẽ được áp dụng trong phiên bản tiếp theo.


đã thử tất cả có thể, trên nhận xét đã giúp! cảm ơn rất nhiều!
Stepan Maksymov

Nó đã làm việc, điều này nên được chấp nhận câu trả lời. Cảm ơn ! Ngoài ra, bạn có thể xóa Instant Run như một giải pháp khác
Özer zcan

Sẽ thật tuyệt nếu một liên kết được đính kèm để hỗ trợ điều này;) "Theo phản hồi của nhóm nhà phát triển google, nó đã được sửa vào ngày 12/1/2016 và sẽ được áp dụng trong phiên bản tiếp theo."
jabu.hlong

Có lẽ là một phản hồi email, vẫn nhận được lỗi này ngày hôm nay và phải xóa các điểm dừng
Jim Factor

Android 7.1.1 vẫn là phiên bản Android chạy trên Pixelbook. Tôi nhận được điều này mọi lúc để phát triển trong Android Studio trên Pixelbook!
Jeff Lockhart

21

Tôi đã xóa tất cả các điểm dừng và nó đã hoạt động, được thử nghiệm với Trình mô phỏng Pixel 25.

Để xóa tất cả các điểm dừng:

  • Đi đến tùy chọn Debugger.

  • Nhấp vào biểu tượng màu đỏ bên dưới để dừng gỡ lỗi.

  • Bạn sẽ thấy một cửa sổ ở đó bạn có thể loại bỏ tất cả các điểm dừng.

Xem thêm trong bài viết này: https://stackoverflow.com/a/42478994/5749462


16

Điều này là do một số vấn đề với các điểm gỡ lỗi. Loại bỏ tất cả các điểm gỡ lỗi và sau đó nó sẽ hoạt động.


3
Bạn có thể sử dụng phím tắt CTRL + SHIFT + F8 để bỏ đánh dấu tất cả các điểm dừng một cách dễ dàng.
brunoramonalmeida

Phím tắt này không hoạt động mọi lúc tùy thuộc vào cài đặt hệ điều hành và bàn phím của bạn
Flame3

8

Nó thực sự kỳ lạ, tôi đã vô hiệu hóa Instant Run và vấn đề đã tự giải quyết.


Có, chạy ngay lập tức trên các thiết bị bên dưới Android 7.0 có thể gây ra sự cố này khá dễ dàng
egorikem

4

Vấn đề của tôi là tôi đã có một điểm dừng tại báo cáo nhập khẩu


Và chạy vào đây như lần thứ ba ... Về cơ bản, bất kỳ điểm dừng nào đôi khi cũng có thể gây ra điều này, do đó, giải pháp có thể chỉ là xóa tất cả / điểm dừng gần đây
egorikem

3

nhập mô tả hình ảnh ở đây

Trong cửa sổ 5: Gỡ lỗi, Sử dụng nút "Xem điểm dừng"

nhập mô tả hình ảnh ở đây

Bỏ chọn tất cả trong số họ

nhập mô tả hình ảnh ở đây


1

Giải pháp đơn giản nhất là cố gắng tìm một thiết bị hoặc trình giả lập khác (cảm ơn AVD Manager, chúng tôi có một sự lựa chọn) sẽ hoạt động như một sự quyến rũ mà không cần giải pháp


1

Ứng dụng của tôi cũng bị sập chỉ khi ở chế độ gỡ lỗi. Đối với phiên bản 3.5 - "Chạy ngay lập tức" đã được thay thế bằng "Áp dụng thay đổi", vì vậy tôi không thể vô hiệu hóa nó. Giải pháp của tôi là khởi chạy ứng dụng một cách bình thường (với mũi tên màu xanh lá cây), điều hướng ngay sau nơi nó sử dụng để gặp sự cố và sau đó gắn trình gỡ lỗi vào nó:
nhập mô tả hình ảnh ở đây


0

Xóa điểm dừng khỏi Runable.run () đã giải quyết vấn đề cho tôi. Tôi đã có thể sử dụng các điểm dừng trong thời gian chạy bên trong Runable.run (). Nhưng không phải lúc biên dịch


0

Chạy vào vấn đề tương tự nhưng điểm dừng của tôi là dòng đầu tiên trong hàm lồng nhau, vậy làm thế nào để di chuyển nó đi nơi khác?

Tôi đã tạo một phương thức riêng tư tạm thời và thực hiện một yêu cầu của phương thức đó là điều đầu tiên trong hàm và sau đó tôi đặt điểm dừng trong phương thức đó.

Khi tôi gỡ lỗi xong, tôi gỡ bỏ phương thức và lời gọi của nó.


0

đó là một cú sút xa nhưng đối với tôi, khi tôi có một câu lệnh nhập không được sử dụng và lần nhập đó có mã chạy các cuộc gọi mạng, nó đã bị sập đối với tôi nhưng khi gỡ bỏ nó, mã có thể gỡ lỗi bình thường.


0

Bắt đầu sụp đổ chỉ khi bắt đầu với trình gỡ lỗi. Đã khởi động lại Android Studio 2.3.2 ... tiếp tục gặp sự cố. Chạy tốt trong chế độ Run. Tôi đã đặt Log.d () ngay sau khi onCreate ... và nó đã giải quyết được vấn đề! Đi đi!


0

Xóa tất cả các điểm gỡ lỗi trên ứng dụng của tôi hoạt động tốt, bạn có thể sử dụng ctrl + shift + f6 để xóa tất cả các điểm gỡ lỗi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.