Не удалось найти Library.apk! - PullRequest
73 голосов
/ 14 июня 2011

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

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

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

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

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

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

ОБНОВЛЕНИЕ : Я попытался удалить проект, а затем повторно импортировать его в соответствии с предложением ниже. Это не помогло. Затем я нашел эту ветку , которая помогла мне понять, что в приложении AndroidManifest.xml <uses-library> имеется ссылка на MyLibrary. Я удалил его, очистил проект и перестроил. Проблема сохраняется.

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

Ответы [ 7 ]

162 голосов
/ 14 июня 2011

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

Оказывается, что " с новой библиотечной функцией, вы не указываете проекты Android, от которых вы зависите, в разделе" Свойства пути Java "в свойствах. Это делается в разделе" Свойства "для Android * 1004. *».

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

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

Благодаря Лэнсу Нанеку !

4 голосов
/ 21 сентября 2012

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

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

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

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

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

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

2 голосов
/ 03 июня 2013

Сегодня я начал получать это сообщение об ошибке в представлении консоли 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.

1 голос
/ 14 июня 2011

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

0 голосов
/ 19 января 2015

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

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

0 голосов
/ 04 декабря 2013

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

0 голосов
/ 08 июля 2012

Используя Eclipse Preferences, вы можете добавить libs повсюду. У меня была ссылочная библиотека в папках / libs и Referenced Libraries. Мне пришлось удалить или удалить их из этих мест и вставить в Android Dependencies (используя Preferences -> Android и просматривая под флажком «Is Library».)

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

...