Ошибка при импорте Jar в проект Android

Это недавняя проблема с новым SDK для Android.

Теперь Android SDK использует соглашение ANT при импорте внешних jar-файлов в пакет apk, внешние jar-файлы должны находиться в папке «lib», и SDK всегда будет экспортировать jar-файлы из этой папки.

Моя проблема заключается в том, что когда я добавляю свои jar-файлы и запускаю свой проект, я получаю следующее сообщение:

Проблемы с обработкой "javax/transaction/HeuristicCommitException.class":

Опрометчивое или ошибочное использование основного класса (java .* или javax.*), когда не создавать основную библиотеку.

Это часто происходит из-за непреднамеренного включения файла основной библиотеки в проект вашего приложения при использовании IDE (например, Eclipse). Если вы уверены, что не намеренно определяете основной класс, тогда это является наиболее вероятным объяснением того, что происходит.

Однако на самом деле вы можете пытаться определить класс в ядре. пространство имен, источник которого вы могли взять, например, из проект виртуальной машины, отличной от Android. Это наверняка не будет Работа. Как минимум, это ставит под угрозу совместимость вашего приложения с будущие версии платформы. тоже часто вызывает сомнения законность.

Если вы действительно собираетесь создать базовую библиотеку, что только подходит как часть создания полного дистрибутива виртуальной машины, в отличие от компиляции приложения - затем используйте Параметр «--core-library», чтобы подавить это сообщение об ошибке.

Если вы используете «--core-library», но на самом деле создаете приложение, то будьте предупреждены, что ваше приложение все равно не удастся построить или запустить, в какой-то момент.Пожалуйста, будьте готовы к разгневанным клиентам которые обнаруживают, например, что ваше приложение перестает функционировать один раз они обновляют свою операционную систему. Вы будете виноваты в этом проблема.

Если вы законно используете какой-либо код, который оказался в ядре package, то самая простая и безопасная альтернатива — это переупаковать этот код. То есть переместите рассматриваемые классы в свой собственный пакет пространство имен. Это означает, что они никогда не будут конфликтовать с ядром. системные классы. JarJar — это инструмент, который может помочь вам в этом начинании. Если вы обнаружите, что не можете этого сделать, то это признак того, что путь, по которому вы идете, в конечном итоге приведет к боли, страданию, горю, и плач.

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

Но я не могу найти этот Android.jar, кроме библиотеки Android, которую нельзя удалить.

Эта проблема с импортом библиотек в Android меня бесит, потому что мое приложение работает очень хорошо.

7
задан rafuru 14 April 2012 в 20:43
поделиться