Android classnotfoundexception application class

Android Studio: ClassNotFoundException

я был занят своим приложением уже больше недели, как вдруг:

вот мой AndroidManifest.xml:

это произошло после некоторых проблем с моим R.java (идентификаторы для представлений, где неверно), после перестройки проекта эта проблема возникла

я уже пробовал отменить кэширование/перезапуск в файловом меню IDE

Обновление 14:51 : это мой файл compiler.xml:

Мой файл MainActivity.java (\src\main\java\nl\test\myapp\MainActivity.java) :

17 ответов

После установки Android Studio на новую машину Win8.1×64, всякий раз, когда я пытаюсь запустить ее, я получаю ClassNotFoundException: com.intellij.ide.plugins.PluginManager , и студия не запускается. Я пробовал распаковывать вместо установки, перезагружать компьютер несколько раз, очищать все.

У меня возникла проблема в моем приложении Android, и я не нашел никакой связанной темы на форуме (возможно, я просто не знал, как ее искать) У меня есть проект, который генерирует файл .jar с некоторыми классами, которые я использую в двух других проектах (в основном это структура сервер-клиент.

Закройте android studio. Перейдите в папку проекта. Удалить все файлы, относящиеся к intelliJ (Android Studio), т. е.

Также убедитесь, что имя пакета совпадает с именем пакета в android manifest.xml.

Затем повторно импортируйте проект.

Это произошло со мной, потому что я переименовал корневой пакет, и IntelliJ (android studio) не отследил это.

Я создал новый проект в Android studio и скопировал все из старого проекта в новый. Теперь он снова работает, без каких-либо(!) изменений в коде.

У меня была та же проблема, оказалось, что я облажался с каким-то последним методом. Обязательно проверьте dalvikvm ошибок в выводе logcat перед ФАТАЛЬНЫМ ИСКЛЮЧЕНИЕМ. Я дам вам несколько советов по этой проблеме. В моем случае у меня был окончательный метод ( isResumed ), который уже был определен в базовом классе, что привело к сбою во время выполнения. Не жаловался во время компиляции.

Я столкнулся с этим. Мое приложение работало нормально, и однажды оно просто начало работать с этими ClassNotFoundExceptions. Мой код совсем не изменился.

Насколько я могу судить, это оказалось ошибкой в сборке Android Studio. Я недавно обновился до последнего выпуска на канарском канале.

При переключении на более старую версию на канале разработки все снова заработало:

  1. Перейдите в Настройки / Внешний вид & Поведение / Системные настройки / Обновление
  2. Переключитесь на канал разработки и проверьте сейчас.

У меня была похожая проблема. Я вспомнил, что ранее было показано сообщение «not enough memory», и процесс загрузки приложения не мог завершиться, остановившись на dexDebug с ошибкой. Затем я освободил достаточно памяти, но приложение началось с ClassNotFoundException.
Решение, которое сработало для меня, состояло в том, чтобы удалить все папки «build» в проекте. Я полагаю, что gradle может поместить поврежденные файлы в папку «build», когда недостаточно памяти.

Вы можете проверить многодексный механизм. Причиной может быть переполнение номеров методов.

Добавить MultiDex.install(this); в ваше приложение:

к модулю вашего приложения gradle.build

Я установил Android Studio, импортировал проект и начал отладку. Все было хорошо, пока внезапно я не запустил отладчик и не получил ClassNotFoundException для запуска основного действия. Странно то, что если я запускаю проект или отлаживаю его с помощью виртуального устройства, все в порядке.

Читайте также:  При прошивки андроида ошибка

У меня есть два проекта. DataModel и мое заявление. Мое приложение успешно запускается, но затем терпит неудачу с classnotfoundexception. Не могу найти проект DataModel. Раньше у меня была такая же проблема, но я мог бы исправить ее, обновив файлы gradle, хотя случайно android studio будет их.

Это случилось и со мной, и ни одно из сообщений здесь не помогло. Моя проблема также была вызвана тем, что я переименовал корневой пакет. Мой ClassNotFoundException показывал DexPathList, который был старым путем к моему пакету. Я обнаружил, что причина была в моем скрипте Gradle под названием «build.gradle (Модуль: приложение)», у меня была строка с надписью: applicationId «old package name». Я изменил это на новое имя пакета, сделал синхронизацию gradle, и все сработало.

я не знаю, поможет ли это you..anyway попытаться использовать тему приложения, как должен использовать @style/Theme.AppCompat..we в соответствии с форумом разработчиков.

Похоже, у вас где-то есть опечатка в пространстве имен. Найдите MyApp и измените его на myapp .

Ваш MainActivity.java исключен из компиляции, поэтому этот класс не включен в .apk. Удалить строку:

из раздела excludeFromCompile файла .idea/compiler.xml (или вы можете сделать это из настроек IDE).

Как я вижу в вашем журнале ,

Для этого вы можете изменить свой lib на libs , я сделал это, и это решило мою проблему.

вы увидите некоторую отметку об ошибке в проекте, чтобы устранить ее, перейдите в свойства проекта и путь к сборке java, удалите оттуда все библиотеки . Вы больше не увидите эту ошибку. 🙂

При использовании Android Studio убедитесь, что папка «src», содержащая ваш класс Java, помечена как «Source Root». В противном случае он не попадет в APK.

В моем случае это было объявление манифеста android.app.Application в проекте и фактический код в модуле.

ПЕРЕЙДИТЕ в меню » Сборка » и очистите проект .

Вышеприведенное решение отлично сработало для меня.

Если вы создаете библиотеку android, возможно, вы просто забыли импортировать свою библиотеку в приложение build.gradle с ключевым словом implementation project :

Надеюсь, это поможет 🙂

https://stackoverflow.com/a/29821331/11480535 работал на меня с небольшим добавлением, что я также должен был удалить projectFilesBackup/ !

Похожие вопросы:

Я только что установил Android Studio и всякий раз, когда я начинаю проект (даже действие по умолчанию Hello world, созданное IDE). У меня есть это исключение, которое поднимается .

Привет, я пытаюсь установить связь между Android Studio и MS SQL Server 2008, но я действительно не могу и не знаю почему.. кто-то может мне помочь? String userName = gav-iis; String password =.

Я кодировал игру с помощью libsgdx в android studio и решил переименовать пакет, теперь я получаю classnotfoundexception, когда запускаю его. Я попробовал изменить имя обратно, вручную искать и.

После установки Android Studio на новую машину Win8.1×64, всякий раз, когда я пытаюсь запустить ее, я получаю ClassNotFoundException: com.intellij.ide.plugins.PluginManager , и студия не.

У меня возникла проблема в моем приложении Android, и я не нашел никакой связанной темы на форуме (возможно, я просто не знал, как ее искать) У меня есть проект, который генерирует файл .jar с.

Я установил Android Studio, импортировал проект и начал отладку. Все было хорошо, пока внезапно я не запустил отладчик и не получил ClassNotFoundException для запуска основного действия. Странно то.

У меня есть два проекта. DataModel и мое заявление. Мое приложение успешно запускается, но затем терпит неудачу с classnotfoundexception. Не могу найти проект DataModel. Раньше у меня была такая же.

Читайте также:  Wizard legend android сборки

Я пытался создать пример приложения, используя новый DrawerLayout с Android Studio и Gradle. Я имею в виду официальный документ google, упомянутый здесь . Но всякий раз, когда я запускаю приложение.

Только что обновился до Android Studio 0.8.2, и я внезапно получаю ClassNotFoundException при запуске для основной деятельности, когда одно из моих приложений построено с 0.8.2. Приложение находится.

Я пытаюсь отладить приложение Android со свежей установкой Android Studio 2.3 и SDK на новом компьютере со свежей установкой Windows 10, я получаю число ClassNotFoundException s для.

Источник

Class Not Found Exception Class

Definition

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Thrown when an application tries to load in a class through its string name using:

    The forName method in class Class .

Remarks

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Constructors

Constructs a ClassNotFoundException with no detail message.

A constructor used when creating managed representations of JNI objects; called by the runtime.

Constructs a ClassNotFoundException with no detail message.

Constructs a ClassNotFoundException with no detail message.

Fields

Properties

Returns the cause of this throwable or null if the cause is nonexistent or unknown.

(Inherited from Throwable) Class (Inherited from Throwable) Clause Exception

Returns the exception that was raised if an error occurred while attempting to load the class.

The handle to the underlying Android instance.

(Inherited from Throwable) JniIdentityHashCode (Inherited from Throwable) JniPeerMembers LocalizedMessage

Creates a localized description of this throwable.

(Inherited from Throwable) Message

Returns the detail message string of this throwable.

(Inherited from Throwable) PeerReference (Inherited from Throwable) StackTrace (Inherited from Throwable) ThresholdClass

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

Methods

Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.

(Inherited from Throwable) Dispose() (Inherited from Throwable) Dispose(Boolean) (Inherited from Throwable) FillInStackTrace()

Fills in the execution stack trace.

(Inherited from Throwable) GetStackTrace()

Provides programmatic access to the stack trace information printed by #printStackTrace() .

(Inherited from Throwable) GetSuppressed()

Returns an array containing all of the exceptions that were suppressed, typically by the try -with-resources statement, in order to deliver this exception.

(Inherited from Throwable) InitCause(Throwable)

Initializes the cause of this throwable to the specified value.

(Inherited from Throwable) PrintStackTrace()

Prints this throwable and its backtrace to the standard error stream.

(Inherited from Throwable) PrintStackTrace(PrintStream)

Prints this throwable and its backtrace to the standard error stream.

(Inherited from Throwable) PrintStackTrace(PrintWriter)

Prints this throwable and its backtrace to the standard error stream.

(Inherited from Throwable) SetHandle(IntPtr, JniHandleOwnership)

Sets the Handle property.

(Inherited from Throwable)

Читайте также:  Android edittext для пароля
SetStackTrace(StackTraceElement[])

Sets the stack trace elements that will be returned by #getStackTrace() and printed by #printStackTrace() and related methods.

(Inherited from Throwable) ToString() (Inherited from Throwable) UnregisterFromRuntime() (Inherited from Throwable)

Explicit Interface Implementations

IJavaPeerable.Disposed() (Inherited from Throwable)
IJavaPeerable.DisposeUnlessReferenced() (Inherited from Throwable)
IJavaPeerable.Finalized() (Inherited from Throwable)
IJavaPeerable.JniManagedPeerState (Inherited from Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32) (Inherited from Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) (Inherited from Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference) (Inherited from Throwable)

Extension Methods

Performs an Android runtime-checked type conversion.

Источник

Исключение ClassNotFoundException против NoClassDefFoundError

Узнайте о различиях между ClassNotFoundException и NoClassDefFoundError.

Автор: baeldung
Дата записи

1. введение

Оба ClassNotFoundException и NoClassDefFoundError возникают, когда JVM не может найти запрошенный класс в пути к классам. Хотя они выглядят знакомыми, между этими двумя есть некоторые основные различия.

В этом уроке мы обсудим некоторые причины их возникновения и их решения.

2. Исключение ClassNotFoundException

ClassNotFoundException является проверяемым исключением, которое возникает, когда приложение пытается загрузить класс с помощью его полного имени и не может найти его определение в пути к классу.

Это происходит в основном при попытке загрузить классы с помощью Class.forName() , ClassLoader.loadClass() или ClassLoader.findSystemClass() . Поэтому нам нужно быть особенно осторожными с java.lang.Исключение ClassNotFoundException при работе с отражением.

Например, давайте попробуем загрузить класс драйвера JDBC без добавления необходимых зависимостей, которые приведут к исключению ClassNotFoundException:

3. NoClassDefFoundError

NoClassDefFoundError является фатальной ошибкой. Это происходит, когда JVM не может найти определение класса при попытке:

  • Создайте экземпляр класса с помощью ключевого слова new
  • Загрузите класс с помощью вызова метода

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

Давайте рассмотрим сценарий, который является одним из простых способов воспроизвести проблему. Класс в нем ошибается инициализация создает исключение. Поэтому, когда мы пытаемся создать объект класса В нем Возникают ошибки, он выдает exceptioninitializererror.

Если мы попытаемся снова загрузить тот же класс, мы получим NoClassDefFoundError:

Давайте напишем тестовый пример для этого сценария:

4. Разрешение

Иногда диагностика и устранение этих двух проблем может занять довольно много времени. Основной причиной обеих проблем является недоступность файла класса (в пути к классу) во время выполнения.

Давайте рассмотрим несколько подходов, которые мы можем рассмотреть при работе с любым из них:

  1. Нам нужно убедиться, доступен ли класс или jar, содержащий этот класс, в пути к классу. Если нет, нам нужно добавить его
  2. Если он доступен в пути к классам приложения, то, скорее всего, путь к классам переопределяется. Чтобы исправить это, нам нужно найти точный путь к классу, используемый нашим приложением
  3. Кроме того, если приложение использует несколько загрузчиков классов, классы, загруженные одним загрузчиком классов, могут быть недоступны другим загрузчикам классов. Чтобы устранить неполадки, необходимо знать как загрузчики классов работают в Java

5. Краткое изложение

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

Среда выполнения Java выдает ClassNotFoundException при попытке загрузить класс только во время выполнения, и имя было указано во время выполнения. В случае NoClassDefFoundError класс присутствовал во время компиляции, но среда выполнения Java не смогла найти его в пути к классам Java во время выполнения.

Как всегда, полный код для всех примеров можно найти на GitHub .

Источник

Оцените статью