Приложение Android ClassNotFoundException для основной деятельности

Большинство устройств могут запускать мое приложение, но я получил этот отчет об ошибке:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.company.app/com.company.app.MainActivity}: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-1/pkg.apk] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2755) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854) at android.app.ActivityThread.access$2300(ActivityThread.java:136) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:5068) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-1/pkg.apk] at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) at java.lang.ClassLoader.loadClass(ClassLoader.java:573) at java.lang.ClassLoader.loadClass(ClassLoader.java:532) at android.app.Instrumentation.newActivity(Instrumentation.java:1034) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2747) ... 11 more 

Я нашел ответ на этот вопрос: ClassNotFoundException Android

Но вопрос в том, что мое исключение происходит до того, как какая-либо строка кода я напишу, так как я могу обеспечить загрузку загрузчика класса?

Solutions Collecting From Web of "Приложение Android ClassNotFoundException для основной деятельности"

У меня была такая же проблема. Внезапно мое приложение перестало работать. Я не делал никаких изменений в манифесте, но с некоторой случайностью отсутствовала первая строка:

<?xml version="1.0" encoding="utf-8"?>

Это вызвало ClassNotFoundException для активности запуска. Я боролся с этим в течение нескольких часов, и я упускал из виду это каждый раз, когда я проверял манифест за возможную ошибку.

Странная вещь произошла после того, как я снова удалил эту строку. Приложение Suprise, suprise все еще работало. (И я не забыл перестроить приложение)

Надеюсь, что это поможет кому-то сэкономить несколько часов.

Я получаю эту ошибку, когда мой класс неправильно определен в манифесте, как правило, потому что я не ввел правильное пространство имен, как в:

  <activity android:name="com.company.project.main.MyMainActivity" ...> 

В отличие от

  <activity android:name="MyMainActivity" ...> 

Не уверен, почему это сработает для вас на некоторых устройствах, а не на других.

Закройте свое затмение и откройте. Очистите проект и обновите его. Затем запустите и посмотрите.

У меня была такая же проблема, и проблема была сторонняя библиотека, использующая Android Support Library.

 myproject/libs/android-support-v4.jar 3rdpartylib/libs/android-support-v4.jar 

Когда я обновил библиотеку с более новой версией, была также обновлена ​​библиотека поддержки, но не в моем проекте. После этого я не смог запустить приложение с этой ошибкой. После того, как обе библиотеки были одинаковыми (копия), все было в порядке.

В затмении выберите «Свойства»> «Путь сборки Java»> «Источник» и посмотрите, всегда ли папка вывода по умолчанию (/ bin / classes).

Для меня это было проблемой из-за плагина maven: всякий раз, когда я нажимаю правой кнопкой мыши> Maven> Update Project …> Ok, он меняет папку вывода папки src на цель / классы, вызывая ClassNotFoundException.

У меня была эта проблема за последние пару дней. Я мог запускать свое приложение на каждой тестовой среде, я мог бы экспортировать apk для выпуска, а также устанавливать и запускать его в каждой тестовой среде, но когда я загрузил apk в игровой магазин и установил его из магазина воспроизведения, приложение будет запускать close throwing ClassNotFoundException , Оказалось, что в моем проекте я отправлял многостраничные данные в веб-api, и для этого требуются некоторые внешние библиотеки. Сначала я просто включил все mim4j , httpclient и httpcore .jars (оказывается, много банок).

После того, как вы удалили почти все из них один за другим и увидели, что мой проект все еще будет построен, меня оставили только одну банку, КОТОРУЮ НАСТОЯТЕЛЬНО ТРЕБУЕТСЯ . Убрать – удалить все банки, которые не требуются для сборки. Затем я протестировал приложение и выяснил, что мне нужно было добавить одну из банок обратно, потому что на ресурсы ссылался тот, который был необходим для создания проекта. Обязательно проверяйте каждую функцию своего приложения после удаления банок.

Затем я просмотрел каждый проект библиотеки, в который я включил, и щелкнул правой кнопкой мыши по project -> properties -> java build path -> order and export и проверил все поля ДЛЯ КАЖДОЙ БИБЛИОТЕКИ и МОЙ СОБСТВЕННЫЙ ПАКЕТ .

Затем я выполнил project -> clean каждый включенный проект и основной проект.

Затем я экспортировал apk и поставил пакет для бета-тестирования, и он, наконец, работал на пользовательских устройствах.

Я столкнулся с этой проблемой, и это было исправлено с помощью этого .

Я не проверял одну внешнюю библиотеку в разделе «Заказ и экспорт», и я получал ошибку.

Ни один из вышеперечисленных ответов не работал для меня, способствуя моему решению, если в будущем он пощадит несколько часов.

Что, по-видимому, работало для меня, было удаление дополнительной поддержки lib v4 jar в моем проекте.

После того, как я обновил поддержку lib через инструменты Android, мне пришлось исправлять несоответствия jar во многих библиотеках, которые я использую, и указывать их все на одну и ту же банку в папке android-sdks.

Я случайно добавил его в свой проект, и по какой-то причине он сделал мой класс MainActivity не найденным во время выполнения, потому что банка также находилась в библиотеке android-support-v7-appcompat, которую я использовал.

Ошибок на затмении вообще нет.

Я удалил банку из своего проекта и проверил банку в библиотеке appcompat v7 на вкладке экспорта, чтобы она была доступна и моему проекту, а приложение voila работает.

Я просто столкнулся с этой проблемой. Оказывается, это связано с тем, что я переместил мою MainActivity в новый пакет.

То, что я сделал, это переместить его из

 com.example.MainActivity 

в

 Activity 

Поэтому в моем манифесте это выглядело так:

  android:name="Activity.MainActivity"` 

Решила его, переместив его обратно в оригинальную упаковку. Это также можно решить, переименовав свои пакеты правильно:

Например: com.example.Activity.MainActivity

Надеюсь, это поможет кому-то.

Благодаря управлению версиями, я заметил, что у меня не было этих строк в моем XML-файле .classpath:

 <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> 

Это вызвало несобственный класс для основной деятельности.