Я разрабатывал библиотеку, которую можно увидеть здесь: https://github.com/afollestad/material-dialogs
Недавно я создал новый проект и скопировал Java/XML/Drawables из-за новых обновлений Android Studio (0.8.14 Beta), Gradle и SDK Build Tools. Внезапно я столкнулся с проблемой, когда пытаюсь запустить созданный мной образец проекта, вчера он работал нормально.
Вот исключение, возникающее во время выполнения, когда пользователь нажимает одну из кнопок в примере:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/afollestad/materialdialogs/R$color;
at com.afollestad.materialdialogs.MaterialDialog$Builder.<init>(MaterialDialog.java:389)
at com.afollestad.materialdialogssample.MainActivity.showCallbacks(MainActivity.java:143)
at com.afollestad.materialdialogssample.MainActivity.access$400(MainActivity.java:24)
at com.afollestad.materialdialogssample.MainActivity$5.onClick(MainActivity.java:62)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.afollestad.materialdialogs.R$color" on path: DexPathList[[zip file "/data/app/com.afollestad.materialdialogssample-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at com.afollestad.materialdialogs.MaterialDialog$Builder.<init>(MaterialDialog.java:389)
at com.afollestad.materialdialogssample.MainActivity.showCallbacks(MainActivity.java:143)
at com.afollestad.materialdialogssample.MainActivity.access$400(MainActivity.java:24)
at com.afollestad.materialdialogssample.MainActivity$5.onClick(MainActivity.java:62)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Suppressed: java.lang.ClassNotFoundException: com.afollestad.materialdialogs.R$color
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Когда создается экземпляр класса MaterialDialog
, он извлекает ресурсы, такие как цвета и размеры. По какой-то причине кажется, что они не переносятся в файл APK. Я думал, что это может быть явной проблемой слияния.