Java.lang.RuntimeException: невозможно создать экземпляр приложения: ClassNotFoundException (только на устройствах с архAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Java.lang.RuntimeException: невозможно создать экземпляр приложения: ClassNotFoundException (только на устройствах с арх

Сообщение Anonymous »

Похоже, это один из самых часто задаваемых вопросов в Stack Overflow, но даже после того, как я попробовал более 20 решений из более чем 10 вопросов и обратился к документации Android, моя проблема не решена.

LogCat:

Код: Выделить всё

FATAL EXCEPTION: main
Process: com.some.app, PID: 22838
java.lang.RuntimeException: Unable to instantiate application com.some.app.utils.Application: java.lang.ClassNotFoundException: Didn't find class "com.some.app.utils.Application" on path: DexPathList[[zip file "/data/app/com.some.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.some.app-1/lib/x86_64, /vendor/lib64, /system/lib64]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:563)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
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:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.some.app.utils.Application" on path: DexPathList[[zip file "/data/app/com.some.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.some.app-1/lib/x86_64, /vendor/lib64, /system/lib64]]
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 android.app.Instrumentation.newApplication(Instrumentation.java:980)
at android.app.LoadedApk.makeApplication(LoadedApk.java:558)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526) 
at android.app.ActivityThread.access$1500(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
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:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Suppressed: java.lang.ClassNotFoundException: com.some.app.utils.Application
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)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Проблема

1. Приложение работает нормально на устройствах, отличных от x86, таких как Motorola, Samsung S6, Samsung S7

2. Приложение выдает эту ошибку на устройствах с архитектурой x86.

Что я пробовал до сих пор

1. Я перепроверяю имена пакетов в манифесте, пакеты и т. д.

2. Присвоил как полное, так и частичное имя пакета атрибуту android:name в манифесте.

3. Попробовал переместить класс Application в основной пакет из пакета utils.

background

1. При установке Android Studio — sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 lib32bz2-1.0 — все работало нормально, кроме lib32bz2-1.0, но до сих пор проблем не было. (Раньше никогда не пробовал устанавливать приложение на устройства x86)

2. Компилировать SDKVersion - 25

3. Версия BuildTools - 25.0.0

4. Версия Gradle — 2.2.2


Рабочая среда

1. Ubuntu 16.04

2. Обновлена ​​JAVA 8

3. Android Studio 2.2.2


РЕДАКТИРОВАТЬ:
часть gradle (приложения), которая, по моему мнению, может быть причиной проблемы

Код: Выделить всё

packagingOptions {
exclude 'META-INF/NOTICE' // will not include NOTICE file
exclude 'META-INF/LICENSE' // will not include LICENSE file
exclude 'META-INF/notice'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license'
exclude 'META-INF/license.txt'
}
sourceSets {
main {
java.srcDirs = ['src/main/java']
}
robolectric {
java.srcDir file('src/test/java/')
}
}

P.S. перекрестно проверил Манифест несколько раз и, похоже, с этим проблем нет. Не удалось найти возможную причину этой аномалии ни в одной документации Android.


Обновление: после ссылки на этот ответ включение мгновенного запуска не вызывая проблемы. Но установка приложения через debug.apk вызывает ту же проблему.

Подробнее здесь: https://stackoverflow.com/questions/405 ... otfoundexc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»