Có một vấn đề với thư viện Android appcompat v7 trên các thiết bị Samsung chạy Android 4.2. Tôi liên tục gặp sự cố với theo dõi ngăn xếp sau trong Bảng điều khiển dành cho nhà phát triển của mình:
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
at android.support.v7.widget.PopupMenu.<init>(PopupMenu.java:66)
at com.[my-package-name].CustomActivity$5.onClick(CustomActivity.java:215)
at android.view.View.performClick(View.java:4222)
at android.view.View$PerformClick.run(View.java:17620)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Đây là dòng 215 của CustomActivity.java:
PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu);
Các sự cố đến từ một loạt các thiết bị, nhưng luôn là Samsung và luôn là Android 4.2.
Một tìm kiếm trên web nhanh chóng khiến tôi tin rằng nhiều người có cùng một vấn đề, một số bước tôi đã cố gắng giải quyết vấn đề là:
- Kiểm tra các thuộc tính dự án Android, đảm bảo thư viện appcompat được thêm đúng cách.
- Kiểm tra các thuộc tính dự án và xuất khẩu đường dẫn xây dựng Java, đảm bảo các phụ thuộc Android và thư viện riêng của Android được kiểm tra.
- Xác nhận lớp được bao gồm trong thư viện (android.support.v7.iternal.view.menu.MothyBuilder).
- Xác nhận R.java nằm trong thư mục gen cho android.support.v7.appcompat.
- Xác nhận chủ đề AppCompat được bao gồm trong hoạt động Manifest.xml.
- Làm sạch và xây dựng lại dự án.
Mặc dù có các bước này và mặc dù nó hoạt động trên tất cả các thiết bị và phiên bản Android khác, các báo cáo sự cố vẫn xuất hiện.