- ClassNotFoundException on path DexPathList #387
- Comments
- lognaturel commented Feb 6, 2017 •
- lognaturel commented Feb 6, 2017
- shobhitagarwal1612 commented Feb 6, 2017
- lognaturel commented Feb 6, 2017
- shobhitagarwal1612 commented Feb 6, 2017
- shobhitagarwal1612 commented Feb 6, 2017
- lognaturel commented Feb 7, 2017 •
- lognaturel commented Feb 7, 2017
- srsudar commented Feb 7, 2017 •
- srsudar commented Feb 7, 2017
- lognaturel commented Feb 7, 2017
- shobhitagarwal1612 commented Feb 7, 2017
- lognaturel commented Feb 7, 2017
- shobhitagarwal1612 commented Feb 7, 2017
- shobhitagarwal1612 commented Feb 7, 2017
- shobhitagarwal1612 commented Feb 7, 2017
- mfaragallah commented Jun 8, 2017
- lognaturel commented Jun 8, 2017
- BhavaniBaskaran commented Jan 18, 2018
- sweta01 commented Feb 17, 2018
- kkvarma commented Feb 23, 2018 •
- lognaturel commented Feb 23, 2018
- saurabhtanu commented Feb 24, 2018
- BhagavanReddyByreddy commented Mar 19, 2018
- ma-fouani commented Jul 1, 2018
- wcluigi commented Nov 6, 2019 •
- Android ClassNotFoundException: не нашел класс на пути
ClassNotFoundException on path DexPathList #387
Comments
lognaturel commented Feb 6, 2017 •
Seen from builds 1061, 1063 and 1065 in the Google Play Developer console. It has happened three times each on Android 4.2, 4.4 and 5.1 (so not very frequently). There is a recent user message that says «legal help page» but I don’t know what that means.
This StackOverflow post has some ideas to explore.
The text was updated successfully, but these errors were encountered:
lognaturel commented Feb 6, 2017
@shobhitagarwal1612, this looks like it could be related to the issue you’re running into. Have you been using the emulator or a real phone? Can you try the other to see if it still happens?
shobhitagarwal1612 commented Feb 6, 2017
I am using my Xolo Q700s Plus, (Android 4.4)
I have also tested on RedMi Note 3, Android 6.0)
lognaturel commented Feb 6, 2017
@shobhitagarwal1612 Can you give the emulator a try, too? I’m still not totally sure this is the same issue since it’s not exactly the same stack trace than you’re getting but it would be interesting to know if the emulator works.
shobhitagarwal1612 commented Feb 6, 2017
I’ll try once again using a clean build
shobhitagarwal1612 commented Feb 6, 2017
@lognaturel I used a clean build and reinstalled the apk. Now, the app is running on RedMi Note 3 (Android 6) but throwing the same error on Xolo Q700s plus(Kitkat, Android 4.4). Thanks for the suggestion
lognaturel commented Feb 7, 2017 •
I tried to run on an API 9 emulator which worked a few days ago and now I get INSTALL_FAILED_DEXOPT even after a clean build. No idea if this is related or not. I’ve tried several suggestions from SO with no luck. No problems running on an API 19 (Android 4.4) emulator.
The big recent change related to all this is that MultiDex support was added just a few days ago. This particular issue has been ongoing since build 1061 but not very frequent.
I’ve added a few more pieces of information from the dev console to the original issue.
lognaturel commented Feb 7, 2017
This is @shobhitagarwal1612’s stack trace reported on Slack:
srsudar commented Feb 7, 2017 •
This sounds a lot like a MultiDex issue I saw with a Collect port I was working on. I solved it by adding a call to attachBaseContext in the Application class. See the line here.
Apologies if this discussion is happening against a branch where this is already added. I don’t see it on master. The main fix is this:
edit: Added some much needed context.
srsudar commented Feb 7, 2017
If it does turn out to be this, I should add that this was one of the most annoying bugs I’ve encountered. It was crashing in the field, I had no idea why, and the importance of MultiDex.install is completely under-emphasized in the docs.
The repo I linked to there is a MultiDex version of Collect that I got working on at least as low as 4.4, so if it isn’t this issue there might be something else in the config files or something that is helpful.
lognaturel commented Feb 7, 2017
Thanks for jumping in and sharing your wisdom @srsudar! That all seems like a super promising first direction to explore and it’s certainly completely new to me.
shobhitagarwal1612 commented Feb 7, 2017
lognaturel commented Feb 7, 2017
@shobhitagarwal1612 Do you want to take a first stab at trying those changes and either report back on what you discover or if it fixes your problem, issue a PR? You’re the only one who is able to reproduce this reliably so it would be super helpful!
shobhitagarwal1612 commented Feb 7, 2017
in Collect.java and it worked for me. Thanks @srsudar
shobhitagarwal1612 commented Feb 7, 2017
@lognaturel I will issue a PR making those changes.
shobhitagarwal1612 commented Feb 7, 2017
@lognaturel I have issued the PR #391. Please review
mfaragallah commented Jun 8, 2017
I still have the same issue here ! How can I fix it ?
lognaturel commented Jun 8, 2017
@mfaragallah Please file a new issue with all the information about device version, etc.
BhavaniBaskaran commented Jan 18, 2018
Hi,
Still i have same issue how can solve it ? Already i have used it.
@OverRide
protected void attachBaseContext(Context base) <
super.attachBaseContext(base);
MultiDex.install(this);
>
in this line but app is crash not supported for it. please give some idea.
sweta01 commented Feb 17, 2018
Caused by: java.lang.ClassNotFoundException: Didn’t find class «android.support.v4.math.MathUtils»
kkvarma commented Feb 23, 2018 •
Hi, I am getting below error while integrating reactnative android aar file in another project.
Please help me to solve this problem..
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/demos/helloworld/MyReactActivity;
at com.demos.helloworld.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.ClassNotFoundException: com.demos.helloworld.MyReactActivity
at java.lang.VMClassLoader.findLoadedClass(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.demos.helloworld.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/facebook/react/modules/core/DefaultHardwareBackBtnHandler;
at com.demos.helloworld.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.ClassNotFoundException: Didn’t find class «com.facebook.react.modules.core.DefaultHardwareBackBtnHandler» on path: DexPathList[[zip file «/data/app/reacttest.prime.com.aarimplementation-1/base.apk»],nativeLibraryDirectories=[/data/app/reacttest.prime.com.aarimplementation-1/lib/x86, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.demos.helloworld.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
lognaturel commented Feb 23, 2018
@kkvarma @sweta01 Those issues don’t seem related to ODK Collect. Please get in touch with the projects you are working with. Good luck!
saurabhtanu commented Feb 24, 2018
I still have the same issue, I an extending MultidexApplication in my app class and I see that the MultidexApplication already calls the Multidex.install() method. However I see this crash only in android versions 6.0 and below
BhagavanReddyByreddy commented Mar 19, 2018
@OverRide
protected void attachBaseContext(Context base) <
super.attachBaseContext(base);
MultiDex.install(this);
>
this worked for me in Application class thanks 🙂
ma-fouani commented Jul 1, 2018
I guess you might have found out what was wrong by now, I ran into the same problem. It turned out when I created my application class, it was not under any package (weird). I only had to move it under the main package: com.mycompany.example
wcluigi commented Nov 6, 2019 •
im also facing this issue
what is weird is its looking for a class that i renamed already and i refractored it the right way but for some reason the error is still pointing to a non-existing class
Edit
My bad lol its still written in the manifest lmao
Источник
Android ClassNotFoundException: не нашел класс на пути
Я не уверен, что вызывает его, поскольку он правильно указан в манифесте:
Я также добавил “Частные библиотеки Android” для создания пути и переместил его в начало “Order and Export”, но он все равно дал мне ту же ошибку.
EDIT: я полностью восстановил проект и не смог воспроизвести ошибку. Не уверен, что это вызвало.
У меня была такая же проблема для моего проекта. Это произошло из-за конфликта в версии библиотеки поддержки Android между моим проектом и проектом библиотеки, который я добавил в свой проект. Поместите ту же версию библиотеки поддержки Android в ваш проект и библиотечные проекты, которые вы включили, и очистите сборку… Все будет работать…
Этот метод работал у меня.
Щелкните правой кнопкой мыши на project и выберите properties . Откроется панель “Свойства для”. В меню слева перейдите к Java Build Path → Order and Export .
В списке ниже снимите флажок рядом с «Android Dependencies» .
Наконец clean your project и запустите.
Надеюсь, что это работает.
Для тех из вас, кто имеет эту проблему в Android Studio, у меня была такая же проблема после слияния и по какой-то причине она сохранялась даже после операций clean и invalidate cash/restart , которые сводили меня с ума.
Оказывается, его можно исправить, выполнив gradle build один раз из командной строки. Просто запустите следующую директорию проекта:
Надеюсь, это сэкономит кому-то время, потраченное на то, что мне пришлось пройти.
Если вы используете Eclipse, попробуйте Project → Clean
У меня была такая же проблема, это сработало для меня
1) Полный путь активности в mainfest вместо относительного пути.
2) Удалите папку ‘build’ и очистите проект.
Это происходит, если мы изменим путь сборки APP, это может быть в любом случае с добавлением или удалением или сменой библиотек или .jar файлов. Лучшее решение – Перезапустить Eclipse.
Если вы получите эту ошибку при использовании новой функции Instant Run в Android Studio 2.0 и выше, это будет своего рода ошибка на их стороне.
Чтобы исправить это, вам придется останавливать свое приложение вручную на устройстве/эмуляторе, если оно не остановлено, а затем из Android Studio выберите Build → Rebuild Project .
Затем нажмите кнопку Запустить или SHIFT + F10
Для любого, у кого есть поддержка multidex, напишите это
внутри build.gradle
напишите класс EnableMultiDex , как показано ниже
и в AndroidManifest.xml напишите это className внутри тега приложения
Если вы используете Multidex на Android 4.4 и более ранних версиях, ваша проблема может заключаться в том, что ваш класс активности находится во втором файле dex и поэтому не найден системой Android.
Чтобы сохранить ваш класс активности в основном файле dex, смотрите эту страницу:
Чтобы узнать, какие классы находятся в файле dex, используйте Android Studio.
Просто перетащите апк в Android Studio. Вы должны увидеть свои файлы dex в apk explorer.
Затем выберите файл dex, чтобы увидеть, какие классы находятся внутри.
другой альтернативой является dexdump:
Вы можете проверить содержимое ваших файлов dex, содержащихся в вашем apk, используя команду dexdump, которую можно найти в
Для пользователей Windows, посмотрите этот инструмент, который я сделал, чтобы облегчить процесс
В моем случае это был процесс минимизации Proguard, который удалил некоторые важные классы из моего рабочего apk.
Решением было отредактировать файл proguard-rules.pro и добавить следующее:
1) Создайте папку libs в корне проекта
2) Скопируйте и вставьте файл jar в него
3) Настроить путь сборки (Добавить банку)
4) Очистить и запустить
Поверьте мне или нет… Я опробовал почти каждый ответ, который я нашел здесь, в stackoverflow. Ничто не помогло бы, пока я не перезапустил машину. Моя Android-студия работает на Ubuntu 16.04 LTS.
Я встретил ту же проблему, и я заметил, что образец кода был помещен в каталог “java” вместо каталога “src”.
После перемещения кода в src проблема была решена.
Также убедитесь, что каталог приложения разделен на несколько папок.
например /main/com/site/appname/ не /main/com.site.appname/
Надеюсь, что он работает
Я столкнулся с этой ошибкой один раз, когда я определил класс, который расширил представление, но ссылался на это пользовательское представление в файле макета с неправильным именем. Вместо я включил в файл макета XML.
У меня была эта проблема в последнее время, и я использую Android Studio 0.8.4
Проблема заключалась в том, что я решил переименовать файл макета XML файла, который был вызван main.xml.
Щелкните правой кнопкой мыши по нему и выберите Рефакторинг → Переименовать. Прежде чем переименовывать его, обязательно снимите флажок “Поиск в комментариях и строках” и нажмите Рефакторинг.
Поскольку мой файл был первоначально назван “main”, он переименовал критические пути в app.iml и build.gradle, главным образом java.srcDirs в build.gradle, так как путь определен как ‘src/main/java’ .
Я надеюсь, что это поможет любому, кто может столкнуться с этой проблемой.
У меня была эта проблема после обновления с версии 18.
После обновления у меня было следующее:
Project Build Target был 5.01, targetSDKVersion = 21
Но:
Build Tools по-прежнему с Android 4.3.1 (18)
Я заметил, что те приложения, которые извлекали свои действия из ActionBarActivity, столкнулись с вышеупомянутой ошибкой тех, которые еще не выполнялись.
Таким образом, простым решением было использование последних Android SDK Build Tools 21.1.2
а не только для Android SDK Build Tools 18, который как-то кажется по умолчанию.
Таким образом, виновник кажется библиотекой Appcompat, которую я использую для обратной совместимости Actionbar.
И кстати: с помощью библиотеки appcompat мне пришлось установить/исправить:
$SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties
target=android-21 (который был рекомендован в другом полезном сообщении и который по умолчанию имеет значение 19))
У меня была такая же проблема в Windows. Я переименовал путь в проект в нечто, содержащее пробел.
Убедитесь, что путь к вашему проекту не содержит пробела.
Я столкнулся с той же проблемой и решил ее, выполнив следующее:
В меню сборки выберите
1- чистый проект.
Решение, упомянутое здесь, → Решение Multidex Issue работало для меня. Ниже приведено то, что нужно добавить в контекст приложения:
Если вы добавили новый Library Project качестве модуля в проект Android и используете Kotlin в своей библиотеке , не забудьте добавить
к началу файла модуля вашего модуля. Android Studio не добавляет эту строку, когда вы создали новый модуль, и это может тратить ваши часы, как и я.
У меня была эта проблема, вызванная несколькими причинами, но я вижу это в вашем стеке “ **Unable to instantiate activity ComponentInfo<. >: java.lang.ClassNotFoundException: Didn’t find class «. » on path: DexPathList[[** “, я обнаружил разницу в моем .classpath , прежде чем он перестает работать.
Я ДОБАВЛЯЛ строку:
это окончательная версия:
Теперь это работает! =)
У меня была такая же точная проблема. Как предположил @weiweia, переместите код из каталога java в src для меня. Я также удалил Android Dependencies из Project → Properties → Java Build Path → Order and Export и включил только проекты библиотеки на экране Android.
У меня была эта проблема довольно долгое время, и, как и все остальные, вышеприведенные ответы не касались моего проекта.
В моем проекте я связал проект с моим проектом, и он бросал ClassDefNotFoundError каждый раз, когда исполнялся какой-то код для другого проекта.
Итак, это было мое решение. Я перешел к свойствам проекта моего проекта и Java Build Path. Нажав “Source” -tab и “источник ссылок” из src-папки другого проекта в свой собственный проект и назвал новую папку “core-src”.
Надежды на это решение помогают кому-то
У меня была такая же проблема. Я использую Xamarin.Android.
В моем случае проблема заключалась в том, что я изменил versionCode и versionName.
У меня не было проблем, когда я их задал так:
Проблема возникла, когда я изменил ее на это (versionCode 2 и versionName 0.0.1):
Я исправил проблему, перейдя на версию Code 2 и versionName 1.0.0.1, например:
Я не уверен, почему это было проблемой, может быть, Android не любит более низкое имя версии с более высоким кодом версии?
Android: VersionCode Внутренний номер версии. Этот номер используется только для определения того, является ли одна версия более поздней, чем другая, с более высокими номерами, указывающими более поздние версии. Это не номер версии, показанный пользователям; это число задается атрибутом versionName. Значение должно быть задано как целое число, например “100”. Вы можете определить его, как хотите, до тех пор, пока каждая последующая версия имеет большее число. Например, это может быть номер сборки. Или вы можете перевести номер версии в формате “x.y” в целое число, закодировав “x” и “y” отдельно в нижнем и верхнем 16 битах. Или вы можете просто увеличить число на каждый каждый раз, когда будет выпущена новая версия.
Android: versionName Номер версии, показанный пользователям. Этот атрибут может быть задан как необработанная строка или как ссылка на ресурс строки. Строка не имеет другой цели, кроме как показывать ее пользователям. Атрибут versionCode содержит значимый номер версии, используемый внутри.
На всякий случай кто-то сталкивается с той же проблемой, что и я, и нет
ответ здесь помогает.
Для меня причина заключалась в том, что рефакторинг студии Android не работает.
Я переместил внутренний класс вне класса, который был View и поэтому
также был xml, где был установлен прямой путь. Этот путь не будет
реорганизованный студией! И никакая ошибка не будет брошена.
Надеюсь, это поможет кому угодно. Приветствия.
В нашем случае мы хотели скомпилировать версию Vagrant и имели ту же ошибку. Мы зафиксировали его clean project и rebuild project в меню “Сборка”
Я только что перезапустил устройство и запустил приложение. Он работал без каких-либо проблем. Надеюсь, это поможет кому-то:)
Я нашел эту ошибку в Android Studio, когда я попытался выполнить отладку в устройстве с API 23, поэтому я проверил Android Studio, и я заметил, что я не установил это версия API 23. После установки я решил проблему.
У меня была эта проблема несколько раз, и часто я не делал что-то явно неправильное с зависимостями.
Всегда полезно проверить, присутствует ли этот класс “не найден” в последнем apk. Если это так, как это было в моих случаях, проблема обычно такова:
Это не то, что данный класс не найден, но он не может быть загружен, потому что его суперкласс отсутствует.
Проверьте, доступен ли класс, который вы продлеваете, и затем попытайтесь исправить вашу сборку script или зависимости соответственно.
Я также столкнулся с той же проблемой,
мы можем решить это, сделав что-то вроде
1- Удалите приложение.
2- Перестройте проект.
3- Очистите проект.
4 Недействительность и перезапуск проекта из файла → аннулировать и перезапустить.
Источник