Вопрос

Итак, сегодня я столкнулся с проблемой, работая над своей программой для Android.У меня есть класс, который превращает эту строку XML в объект Java (сторонний), и он отлично работает в обычном Java-проекте, но на Android я получаю эту странную ошибку:

06-21 22:44:26.402: DEBUG/App(259): java.lang.ClassNotFoundException: com.package.mycode.Class in loader dalvik.system.PathClassLoader@4001b500
06-21 22:44:26.402: DEBUG/App(259):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)

Я скрываю имя своего приложения и свой пакет по очевидным причинам, но мне было интересно, сталкивался ли кто-нибудь когда-либо с подобными проблемами.Класс находится в правильном пакете, который является библиотекой, которую я добавил.Другие классы, на которые я ссылался ранее, существуют, и их можно создать.Есть ли какие-то другие причины, по которым ClassNotFoundException брошен?

Спасибо, Джейк

Это было полезно?

Решение

private static void fixClassLoaderIssue()
{
    ClassLoader myClassLoader = MyClass.class.getClassLoader();
    Thread.currentThread().setContextClassLoader(myClassLoader);
}

Это код, который у меня в настоящее время есть, что я считаю, исправил эту проблему. MyClass - это просто класс, который у меня есть в моем проекте. Как я уже сказал, сотрудничество показало это мне, но это кажется довольно прямо вперед.

Другие советы

Есть ли другие причины, что ClassnotFoundexception брошен?

IIRC, его также могут быть брошены, если какой-то другой класс в статических зависимостях «COM.Package.mycode.Class» не может быть загружен, или если возникает проблема во время статической инициализации. Но они должны появиться как вложенное исключение ... Первый раз, когда вы пытаетесь загрузить класс.

Android имеет не все доступные классы Java, которые доступны на обычной машине. Есть несколько классов, которые могут вызвать эту ошибку. Но это уже должно быть показано во время компиляции. Посмотри на это список Чтобы увидеть, какие классы поддерживаются и которые не поддерживаются.

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

Для приложения для Android у меня такая же проблема с внешним файлом jar.В моем случае решение состояло в том, чтобы переместить jar из папки "lib" в папку "libs" Android по умолчанию.

Когда jar находился в папке lib (также был добавлен в путь сборки), хотя в Eclipse не было проблем со сборкой, приложение выдавало ClassNotFoundException во время выполнения.Как только я переместил jar в папку "библиотеки", jar начал появляться в разделе "Зависимости Android", и приложение начало работать нормально.

Вот некоторые из других обсуждений на ту же тему.

Добавление библиотеки / JAR в проект Eclipse Android

Android:Как называется папка с файлами jar (LIB или LIBS)?

Как указать папку lib для JARS при использовании файла сборки ant, созданного Android?

у меня возникла проблема с запуском aynctask.раньше это работало просто отлично, но потом я добавил

line = StringEscapeUtils.unescapeHtml4(line);

(это библиотека commons.apache.org) для asynctask, тогда возникает множество проблем.он компилируется нормально, но когда я попытался запустить, он сказал, что класс не найден в моем классе asynctask.но когда я нажал кнопку возобновить, она продолжала работать в асинхронной задаче, а затем умерла.

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

Есть ли другие причины, что ClassnotFoundexception брошен?

В моем случае у меня есть классное значение для моего основного вида деятельности при строительстве APK с Eclipse, но не имела никаких проблем при строительстве с Maven.

Проблема заключалась в том, что моя основная деятельность реализовала интерфейс из простого проекта Java «Pojo Builbical». В проекте Android> Properties> Path> Java Build> Заказ и экспорт я должен был отметить флажок, чтобы экспортировать «Библиотека POJO». После очистки проекта интерфейс был включен в классы. Дейк в APK и проблема была решена.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top