Android 4.2를 실행하는 Samsung 장치의 Android appcompat v7 라이브러리에 문제가 있습니다. 개발자 콘솔에서 다음 스택 추적으로 계속 충돌이 발생합니다.
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)
이것은 CustomActivity.java의 215 행입니다.
PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu);
충돌은 일련의 장치에서 발생하지만 항상 Samsung이며 항상 Android 4.2입니다.
빠른 웹 검색을 통해 많은 사람들이 동일한 문제를 겪고 있다고 믿게되는데,이 문제를 해결하기 위해 시도한 단계 중 일부는 다음과 같습니다.
- Android 프로젝트 특성을 확인하고 appcompat 라이브러리가 올바르게 추가되었는지 확인하십시오.
- Java 빌드 경로 순서 및 내보내기 프로젝트 특성을 확인하고 Android 종속성 및 Android 개인 라이브러리가 선택되어 있는지 확인하십시오.
- 클래스가 라이브러리에 포함되어 있는지 확인하십시오 (android.support.v7.internal.view.menu.MenuBuilder).
- R.java가 android.support.v7.appcompat의 gen 디렉토리에 있는지 확인하십시오.
- AppCompat 테마가 Manifest.xml 활동에 포함되어 있는지 확인하십시오.
- 프로젝트를 정리하고 다시 빌드하십시오.
이러한 단계에도 불구하고 다른 모든 장치 및 Android 버전에서 작동하더라도 충돌 보고서는 계속 발생합니다.