Не удалось найти Library.apk!

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

Это прекрасно работает, за исключением того, что Eclipse Console ( не LogCat!) выдает следующее сообщение об ошибке:

[2011-06-13 19:54:08 - MyLibrary] Could not find MyLibrary.apk!

Я очистил оба проекта (библиотека и приложение), перезапустил Eclipse, перестроил проекты, но это странное сообщение об ошибке сохраняется.

Что означает это сообщение об ошибке? (особенно в свете, что все, кажется, работает нормально)

Как мне избавиться от него?

UPDATE. Я попытался удалить проект и повторно импортировать его в соответствии с предложением ниже. Это не помогло. Затем я нашел этот поток, который помог мне понять, что у меня было <uses-library> в приложении AndroidManifest.xml, ссылающемся на MyLibrary. Я удалил его, очистил проект и перестроил. Проблема сохраняется.

Теперь я подозреваю, что это "настоящая проблема", например. неправильная настройка некоторых путей или что-то еще с моей стороны. Что это может быть?

Ответ 1

Я нашел источник проблемы!

Оказывается, что "с новой функцией библиотеки вы не указываете проекты Android, на которые вы зависите, в разделе" Путь сборки Java "свойств. Вы делаете это в разделе Android" Свойства ".

Итак, все, что мне нужно было сделать, это запустить Application Project Properties, нажать вкладку Projects, выбрать мой собственный проект библиотеки и нажать кнопку Remove. Это. Больше проблем.

В Eclipse Java EE выберите Свойства проекта, затем выберите Project References, затем проверьте FacebookSDK (см. захват экрана) enter image description here

Благодаря Lance Nanek!

Ответ 2

Это интересно... Я не совсем сделал то, что указывает ответ.

У меня есть отдельный проект андроида под названием "ConnectionHandler", который подключается к веб-сервису для извлечения информации. Этот проект не содержит классов активности. (Если это так, вам потребуются изменения в файле AndroidManifest в главном приложении, а также следующие инструкции ниже).

Чтобы использовать отдельный проект ConnectionHandler в качестве библиотеки, мне нужно было сделать следующее:

  • В главном приложении > Выберите свойства проектa > Перейти к пути сборки Java > Добавить банки > Выбрать папку bin в ConnectionHandler > выберите connectionhandler.jar
  • В проекте ConnectionHandler > Выберите свойства проектa > Android > Проверить isLibrary
  • В MainApplication > Выберите свойства проектa > Перейдите в Android > Добавить ссылку на ConnectionHandler в разделе "Библиотека".

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

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

Ответ 3

Сегодня я начал получать это сообщение об ошибке в представлении консоли Eclipse, но оказалось, что это не проблема. Мое приложение будет создано и установлено на моем устройстве, и даже бежит на долю секунды (пока он не разбился). Это то, что выглядела моя консольная консоль на Eclipse:

[2013-06-03 09:42:25 - my-android] Android Launch!
[2013-06-03 09:42:25 - my-android] adb is running normally.
[2013-06-03 09:42:25 - my-android] Performing com.my.android.activity.MainActivity activity launch
[2013-06-03 09:42:25 - my-android] Uploading my-android.apk onto device '650rfs2e'
[2013-06-03 09:42:31 - my-android] Installing my-android.apk...
[2013-06-03 09:42:35 - my-android] Success!
[2013-06-03 09:42:36 - my-other-android] Could not find my-other-android.apk!
[2013-06-03 09:42:36 - android-SherlockFragment] Could not find android-SherlockFragment.apk!
[2013-06-03 09:42:36 - my-android] Starting activity com.my.android.activity.MainActivity on device 650rfs2e
[2013-06-03 09:42:36 - my-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.my.android/.activity.MainActivity }

Но после тщательного осмотра моего LogCat было исключено глупое исключение из фрагмента, который я пытался инициализировать. Как только я исправил свой фрагмент (который поднимал NPE), все получилось просто отлично, даже через мою консоль все еще говорит мне, что он не может найти эти библиотеки APK.

Ответ 4

Вы пытались удалить проект без удаления из жесткого диска и реимпорта проекта. Кажется, это работало для меня, когда у меня была эта проблема.

Ответ 5

Используя настройки Eclipse, вы можете получить доступ к libs по всему месту. У меня были ссылки lib в /libs и справочные папки библиотек. Мне пришлось удалить или удалить их из этих мест и вставить их в Android Dependencies (с помощью Preferences → Android и просмотра под "Is Library" ).

Правильный макет для моего проекта: http://www.pasteall.org/pic/show.php?id=34513

Ответ 6

Для меня причина этого заключалась в том, что проект библиотеки и основной проект имели тот же пакет. Самый простой способ изменить пакет - right click on the library project > Android Tools > Rename Application Package.

Ответ 7

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

Авария произошла только во время выполнения, когда она попала в первое использование моего проекта библиотеки. Как только я изменил свойство Application Name, чтобы отобразить правильный класс приложения для проекта, который использовал проект библиотеки, он работал