10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561): ... 11 more
Я не совсем уверен, что вызывает это, поскольку он правильно указан в манифесте:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gvg.simid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature android:name="android.hardware.usb.host" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.gvg.simid.Login"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Я также добавил «Частные библиотеки Android» для создания пути и переместил его в верхнюю часть «Порядок и экспорт», но он все равно дал мне ту же ошибку.
EDIT: я полностью перестроил проект и не смог воспроизвести ошибку. Не уверен, что было причиной.
Ответы:
У меня была такая же проблема с моим проектом. Это произошло из-за конфликта в версии библиотеки поддержки Android между моим проектом и проектом библиотеки, который я добавил в свой проект. Поместите ту же версию библиотеки поддержки Android в свой проект и проекты библиотеки, которые вы включили, и очистите сборку ... Все будет работать ...
источник
Этот следующий метод сработал для меня
project
и выберитеproperties
Java Build Path
->Order and Export
"Android Dependencies"
clean your project
и запуститеисточник
project
? Что это значит?Для тех из вас , кто с этой проблемой на Android Studio, у меня была такая же проблема , после слияния и по какой - то причине он даже сохраняется после
clean
иinvalidate cash/restart
операции, сводит меня с ума.Оказывается, это можно исправить, запустив gradle build один раз из командной строки. Просто запустите в каталоге проекта следующую команду:
Я надеюсь, что это сэкономит кому-то трату времени и разочарование, через которые мне пришлось пройти.
источник
У меня была такая же проблема, это сработало для меня
1) Полный путь активности в mainfest вместо относительного пути.
2) Удалите папку build и очистите проект.
источник
Если вы используете Eclipse, попробуйте Project -> Clean
источник
Если вы добавили новый
Library Project
модуль в свой проект Android и используете егоKotlin
в своей библиотеке , не забудьте добавитьв начало файла Gradle вашего модуля. Android Studio не добавляет эту строку при создании нового модуля, и это может тратить ваши часы, как я.
Изменить: через некоторое время я снова боролся с этой проблемой, и на этот раз я забыл добавить свой модуль в качестве зависимости от проекта. :)
источник
Это происходит, если мы меняем путь сборки приложения, это может быть в любом случае добавления, удаления или изменения библиотек или файла .jar. Лучшее решение - перезапустить Eclipse.
источник
Если вы получаете эту ошибку при использовании новой функции мгновенного запуска в Android Studio 2.0 и более поздних версиях, то это своего рода ошибка на их стороне.
Чтобы исправить это, вам придется вручную остановить приложение на устройстве / эмуляторе, если оно не остановлено, затем в Android Studio выберите Build→Rebuild Project.
Затем нажмите кнопку « Выполнить» или SHIFT + F10.
источник
Для всех, у кого есть поддержка multidex, напишите это
внутри build.gradle
напишите класс,
EnableMultiDex
как показано нижеи
AndroidManifest.xml
напишите это className внутри тега Applicationисточник
MultiDexApplication
класса, а не изApplication
.MultiDexApplication
, и исключение исчезло на Android 4.4.Если вы используете Multidex на Android 4.4 и более ранних версиях , ваша проблема может заключаться в том, что ваш класс активности расположен во втором файле dex и, следовательно, не найден системой Android.
Чтобы сохранить свой класс активности в основном файле dex, см. Эту страницу:
https://developer.android.com/studio/build/multidex.html#keep
Чтобы узнать, какие классы находятся в файле dex, используйте Android Studio .
Просто перетащите ваш apk в Android Studio. Вы должны увидеть свои файлы dex в проводнике apk.
Затем выберите файл dex, чтобы увидеть, какие классы находятся внутри.
другая альтернатива - dexdump:
Вы можете проверить содержимое ваших файлов dex, содержащихся в вашем apk, с помощью команды dexdump, которую можно найти в
Пользователи Windows могут увидеть этот инструмент, который я сделал, чтобы упростить процесс.
источник
В моем случае это был процесс минификации proguard, который удалил некоторые важные классы из моего производственного apk.
Решением было отредактировать файл proguard-rules.pro и добавить следующее:
источник
1) Создайте папку libs в корне проекта
2) Скопируйте и вставьте в нее файл jar
3) Настройте путь сборки (Добавить jar)
4) Очистите и запустите
ура :-)
источник
Верьте мне или нет ... Я попробовал почти каждый ответ, который нашел здесь, на stackoverflow. Ничего не поможет, пока я просто не перезапущу машину. Моя Android Studio работает на Ubuntu 16.04 LTS.
источник
Я столкнулся с этой ошибкой один раз, когда определил класс, расширяющий представление, но ссылаясь на это настраиваемое представление в файле макета с неправильным именем. Вместо этого
<com.example.customview/>
я включил<com.customview/>
в файл макета XML.источник
Я столкнулся с той же проблемой и решил ее, выполнив следующие действия:
В меню сборки выберите
1- чистый проект.
2- Соберите APK.
источник
Я столкнулся с той же проблемой и заметил, что образец кода был помещен в каталог «java» вместо каталога «src». После переноса кода в src проблема была решена.
Также убедитесь, что каталог приложения разделен на несколько папок. например,
/main/com/site/appname/
не/main/com.site.appname/
Надеюсь, это сработает ~
источник
Я сталкиваюсь с той же проблемой, и после долгой работы и поиска я нашел решение: я просто очистил проект, а затем создал apk. -Build-> Clean Project -Build-> Build APK (s) Надеюсь, это будет полезно .....
источник
У меня недавно была эта проблема, и я использую Android Studio 0.8.4
Проблема заключалась в том, что я решил переименовать файл макета меню XML, который назывался main.xml.
Щелкните его правой кнопкой мыши и выберите Refactor -> Rename . Перед его переименованием обязательно снимите флажок «Искать в комментариях и строках» и нажмите « Рефакторинг» .
Поскольку мой файл изначально назывался «main» , он переименовал критические пути в app.iml и build.gradle, в основном java.srcDirs в build.gradle, поскольку путь определен как
'src/main/java'
.Я надеюсь, что это поможет всем, кто может столкнуться с этой проблемой.
источник
У меня возникла эта проблема после обновления с версии 18. После обновления у меня было следующее: Цель сборки проекта была 5.01, targetSDKVersion = 21
Но: Инструменты сборки все еще были из 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. Я переименовал путь к проекту на что-то, содержащее пробел.
Убедитесь, что путь к вашему проекту не содержит пробелов.
источник
Решение, упомянутое здесь -> Решение Multidex Issue сработало для меня. Ниже показано, что нужно добавить в контекст приложения:
источник
У меня была эта проблема, вызванная несколькими причинами, но я вижу это в вашей трассировке стека "
**Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[**
", я обнаружил разницу в моем,.classpath
прежде чем он перестал работать.Я ДОБАВИЛ строку:
это окончательная версия:
Теперь это работает! знак равно
источник
У меня была такая же проблема. Как предложил @weiweia, перемещение кода из каталога java в src сработало для меня. Я также удалил зависимости Android из Project -> Properties -> Java Build Path -> Order and Export и убедился, что на экране Android включены только проекты библиотеки.
источник
У меня была эта проблема довольно долгое время, и, как и все остальные, приведенные выше ответы не относились к моему проекту.
В моем проекте я связал проект с моим проектом, и он бросал ClassDefNotFoundError каждый раз, когда выполнялся какой-то код для другого проекта.
Так что это было моим решением. Я перешел к свойствам проекта и пути сборки Java. Нажал вкладку «Источник» и «источник ссылки» из папки src другого проекта в мой собственный проект и назвал новую папку «core-src».
Надеюсь, это решение кому-то поможет
источник
Я была такая же проблема. Я использую Xamarin.Android.
В моем случае проблема заключалась в том, что я изменил код версии и имя версии.
У меня не было проблем, когда я установил их так:
Проблема появилась, когда я изменил его на это (versionCode 2 и versionName 0.0.1):
Я исправил проблему, изменив код версии 2 и имя версии 1.0.0.1, например:
Я не уверен, почему это было проблемой, может быть, Android не нравится более низкая версия versionName с более высоким versionCode?
Я нашел следующее на http://developer.android.com/guide/topics/manifest/manifest-element.html#vname
источник
На всякий случай, когда кто-то сталкивается с той же проблемой, что и я, и никакой предлагаемый ответ здесь не помогает.
Для меня причина заключалась в том, что рефакторинг студии Android глючил. Я переместил внутренний класс за пределы класса, который был представлением и, следовательно, также имел xml, в котором был установлен прямой путь. Этот путь не будет реорганизован студией! И никакой ошибки не будет.
Надеюсь, это кому-нибудь поможет. Ура.
источник
В нашем случае мы хотели скомпилировать версию Vagrant и получили ту же ошибку. Мы исправили ее
clean project
иrebuild project
в менюПостроениевыберитеисточник
Я просто перезапустил устройство и запустил приложение. Работало без проблем. Надеюсь, это кому-то поможет :)
источник
Я обнаружил эту ошибку в Android Studio, когда попытался выполнить отладку на устройстве с API 23 , поэтому я проверил Android Studio и заметил, что не установил эту версию API 23 . После установки решил проблему.
источник
У меня была эта проблема несколько раз, и часто я не делал что-то явно неправильное с зависимостями.
Всегда полезно проверить, присутствует ли этот класс «не найден» в финальном apk. Если это так, как это было в моих случаях, проблема обычно в следующем:
Дело не в том, что данный класс не найден, но он не может быть загружен, потому что отсутствует его суперкласс.
Убедитесь, что класс, который вы расширяете, доступен, а затем попытайтесь соответствующим образом исправить сценарий сборки или зависимости.
источник