Android ClassNotFoundException: не нашел класс на пути
Я не могу найти решение этой ошибки. Можете ли вы дать постоянное решение. Я понятия не имею, как это решить, и помогите мне. Спасибо
01-04 11:06:42.302: E/AndroidRuntime(1906): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{e.gochat/e.gochat.gochat.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "e.gochat.gochat.MainActivity" on path: DexPathList[[zip file "/data/app/e.gochat-1.apk"],nativeLibraryDirectories=[/data/app-lib/e.gochat-1, /vendor/lib, /system/lib]]
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread.access$700(ActivityThread.java:135)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.os.Handler.dispatchMessage(Handler.java:102)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.os.Looper.loop(Looper.java:137)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread.main(ActivityThread.java:4998)
01-04 11:06:42.302: E/AndroidRuntime(1906): at java.lang.reflect.Method.invokeNative(Native Method)
01-04 11:06:42.302: E/AndroidRuntime(1906): at java.lang.reflect.Method.invoke(Method.java:515)
01-04 11:06:42.302: E/AndroidRuntime(1906): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
01-04 11:06:42.302: E/AndroidRuntime(1906): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
01-04 11:06:42.302: E/AndroidRuntime(1906): at dalvik.system.NativeStart.main(Native Method)
01-04 11:06:42.302: E/AndroidRuntime(1906): Caused by: java.lang.ClassNotFoundException: Didn't find class "e.gochat.gochat.MainActivity" on path: DexPathList[[zip file "/data/app/e.gochat-1.apk"],nativeLibraryDirectories=[/data/app-lib/e.gochat-1, /vendor/lib, /system/lib]]
01-04 11:06:42.302: E/AndroidRuntime(1906): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-04 11:06:42.302: E/AndroidRuntime(1906): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
01-04 11:06:42.302: E/AndroidRuntime(1906): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
01-04 11:06:42.302: E/AndroidRuntime(1906): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)
01-04 11:06:42.302: E/AndroidRuntime(1906): ... 11 more
01-04 11:07:06.772: I/Process(1906): Sending signal. PID: 1906 SIG: 9
Это мое приложение манифест XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="e.gochat"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="18" />
<permission
android:name="e.gochat.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="e.gochat.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<application
android:name="e.gochat.Common"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="e.gochat.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="e.gochat.ChatActivity"
/>
<activity
android:name="e.gochat.SettingsActivity"
android:label="@string/title_activity_settings" />
<receiver
android:name="e.gochat.client.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="e.gochat" />
</intent-filter>
</receiver>
<provider
android:name="e.gochat.DataProvider"
android:authorities="e.gochat.provider"
android:exported="false">
</provider>
</application>
Я не уверен, что здесь не так. Я добавил файл .jar в путь сборки java. И все же я получаю это классное исключение. Приложение загружается, когда я импортирую файл android.app.Application
Ответы
Ответ 1
Я точно не знаю, что такое имя вашего пакета, но если это e.gochat
сделать это.
Добавить package="e.gochat"
в manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="e.gochat"
.....
.....
>
В каждом объявлении активности для android:name
поместите точку перед именем деятельности:
<activity
android:name=".MainActivity">
............
</activity>
<activity
android:name=".ChatActivity">
EDIT
После вашего редактирования я вижу, что e.gochat
- это имя вашего пакета.
Теперь вам нужно удалить e.gochat
из каждого имени деятельности/провайдера/получателя, как я сказал во второй части моего ответа.
Android добавит это для вас.
Ответ 2
Я решил эту проблему, отключив опцию мгновенного запуска android studio.
Чтобы отключить Instant Run Goto
Файл → Настройки
- > Сборка, выполнение, развертывание → Мгновенный запуск → Снимите флажок для мгновенного запуска
Ответ 3
Использование Android Studio
После обновления до Android Stuido 0.8.2 у меня возникла эта проблема. Я пробовал много вещей, включая
- Очистить проект
- Очистить проект (gradle чистый)
- Недействительные кеши и перезапуск
- Отменить квалификацию имени активности в AndroidManifest.xml(.MyActivity)
Ничего не работало, пока я не импортировал весь проект.
File -> Close Project -> Import Project... -> Choose the same project -> OK
Это исправлено для меня
Ответ 4
Удаление приложения на устройстве и запуск проекта снова исправили его для меня.
Ответ 5
Причина, по которой это повлияло на меня, объясняется неправильным именем пути в файле макета
<android.support.v4.app.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.app.view.ViewPager>
Правильный абсолютный путь к ViewPager -
android.support.v4.view.ViewPager
После исправления пути он сработал. Мне не нужно было префикс имени активности с помощью..
Ответ 6
Для меня это происходило на устройствах, запущенных < Android 5.0, потому что у меня не было поддержки поддержки multidex (это более 65 тысяч методов, включая libs). Multidex является автоматическим и родным на Android 5.0+ (в частности, устройства, использующие ART).
Ответ 7
Проблема была решена путем удаления MultiDexSupport из build.gradle
файла:
defaultConfig {
multiDexEnabled true // This line was causing above problem
}
Удаление MultiDexSupport решило проблему
Ответ 8
Эта проблема имеет несколько ответов на основе разных сценариев.
Я получал ту же ошибку при использовании библиотеки (.aar) в моем проекте Android Studio.
Основная причина в моем случае заключалась в том, что я пропустил добавление зависимостей сторонних библиотек в файле build build.radio приложения, который использовался файлом .aar.
Например: - Библиотека (.aar) использовала "com.squareup.okhttp3: okhttp: 3.4.1". Поэтому мне пришлось добавить
compile 'com.squareup.okhttp3: okhttp: 3.4.1'
в приложении build.gradle. Надеюсь, это поможет кому-то.
Ответ 9
Я реализовал прослушиватель, который не был доступен в версии для Android, которую я запускал, и это привело к той же ошибке.
Пример MainActivity:
// RecyclerView.OnScrollChangeListener is only available on API >= 23
public class MainActivity implements RecyclerView.OnScrollChangeListener
{
}
Выполнение этой операции на устройстве с API < 23 также приведет к этой ошибке...
Ответ 10
ANDROID STUDIO
В дополнение к Кишору ответьте:
Ошибка произошла в моем маленьком проекте, когда я включил multiDexEnabled = true
в gradle defaultconfig.
Использование сгенерированного файла .apk сбой при запуске приложения с известным сообщением об ошибке.
Для меня это было решено, когда я построил файл .apk через gradle (правая сторона студии android) → "yourapp" → Tasks- > install → installDebug
Надеюсь, что это поможет кому-то с этой странной ошибкой