Не удалось устранить ошибку суперкласса при обращении к библиотеке.jar
- Я сделал проект Android и запустил его. Это успешно прошло.
- Я разработал веб-сервис на Java и разместил его. Это успешно прошло.
- Я экспортировал веб-сервис в.jar и добавил его в свой проект Android.
- Когда я пытаюсь вызвать метод в веб-сервисе, я получаю
Unable to resolve superclass
ошибка.
Мой журнал ошибок:
Unable to resolve superclass of Lweb/service/RandomWordGeneratorService; (73)
Link of class 'Lweb/service/RandomWordGeneratorService;' failed
Could not find class 'web.service.RandomWordGeneratorService',
referenced from method tam.miru.Login$1.onClick
VFY: unable to resolve new-instance 110 Lweb/service/RandomWordGeneratorService;)
in Ltam/miru/Login$1;
VFY: replacing opcode 0x22 at 0x005a
VFY: dead code 0x005c-006e in Ltam/miru/Login$1;.onClick (Landroid/view/View;)
8 ответов
Просто начал получать эту проблему после обновления до ADT 17.
Обнаружено, что внешние файлы.jar должны находиться в папке 'libs' (с s), иначе их классы не будут включены в создаваемый файл.dex. Перед обновлением все работало нормально с моими файлами.jar в папке 'lib' (нет).
В моем случае я должен был пойти в Properties->Java Build Path->Order and Export
и проверить Android Private Libraries
, затем очистил проект и работал нормально.
Создайте папку lib, папку libs - для собственных библиотек. Я сделал это, добавить библиотеку в lib и построить путь как внутреннюю библиотеку, и это работает!
Я знаю, что это сообщение в очень старой теме, но после того, как я прочитал ответ @rabidgremlin, я проверил структуру папок и обнаружил, что она уже была в "libs". Однако, увидев support.jar, я понял, что именно это и стало причиной проблемы.
Я расширял "FragmentActivity", но оказалось, что он ссылался на support.jar, в котором были проблемы. После того как я удалил предложение extends, приложение чудесным образом перестало падать.
Просто к вашему сведению на случай, если кто-то придет посмотреть. Ура!
Вы используете затмение? Если да, добавили ли вы библиотеку в путь сборки, как описано в разделе Добавление библиотеки /JAR в проект Eclipse Android?
У меня была та же проблема, я пытался пометить частные библиотеки Android в разделе "Заказ и экспорт", и у меня это не получилось. Затем я заметил, что моя папка libs не указана в Java Build Path. Поэтому я просто добавил его в библиотеки, и это сработало.
У меня было то же сообщение об ошибке. Мне потребовалось некоторое время, чтобы разобраться в проблеме: для работы Android требуется Java 1.6. И суперкласс моей Деятельности реализовал интерфейс из проекта Java, который имел Java 1.7 в качестве компилятора. Этого было достаточно, чтобы конструктор dex не смог связать суперкласс, и это привело к тому, что класс не нашел исключение.
Я столкнулся с другой причиной этой ошибки в Eclipse. Я экспериментировал с помещением рабочих пространств eclipse в каталоги дисков Google и обнаружил, что некоторые суперклассы не могут быть разрешены с помощью операций Android.
Приостановили гугл диск и все стало работать нормально. В моем случае суперкласс, который не загружался, был из сгенерированного буфера протокола класса. Этот класс и все остальные, которые я тестировал, отлично работали в не-андроидных Java-программах, даже когда гугл-диск работал.