มีปัญหากับไลบรารี Android appcompat v7 บนอุปกรณ์ Samsung ที่ใช้ Android 4.2 ฉันได้รับความขัดข้องด้วยการติดตามสแต็กต่อไปนี้ในคอนโซลนักพัฒนาซอฟต์แวร์ของฉัน:
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)
นี่คือสาย 215 ของ CustomActivity.java:
PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu);
การขัดข้องเกิดจากอุปกรณ์หลายอย่าง แต่เป็น Samsung และ Android 4.2 เสมอ
การค้นหาเว็บอย่างรวดเร็วทำให้ฉันเชื่อว่าหลายคนมีปัญหาเดียวกันขั้นตอนบางอย่างที่ฉันพยายามแก้ไขปัญหาคือ:
- ตรวจสอบคุณสมบัติของโครงการ Android ตรวจสอบให้แน่ใจว่าเพิ่ม appcompat library อย่างถูกต้อง
- ตรวจสอบคุณสมบัติของ Java Build Path Order และ Export project ตรวจสอบให้แน่ใจว่า Android Dependencies และ Android Private Libraries ได้รับการตรวจสอบแล้ว
- ยืนยันคลาสที่รวมอยู่ในไลบรารี (android.support.v7.internal.view.menu.MenuBuilder)
- ยืนยันว่า R.java อยู่ในไดเรกทอรี gen สำหรับ android.support.v7.appcompat
- ยืนยันว่าธีม AppCompat รวมอยู่ในกิจกรรม Manifest.xml
- ทำความสะอาดและสร้างโครงการใหม่
แม้จะมีขั้นตอนเหล่านี้และแม้ว่ามันจะทำงานบนอุปกรณ์อื่น ๆ และ Android ทุกรุ่นรายงานความผิดพลาดก็ยังคงเกิดขึ้น