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

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

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

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

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

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

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

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

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


person an00b    schedule 13.06.2011    source источник


Ответы (7)


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

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

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

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

Спасибо Лэнсу Нанеку!

person an00b    schedule 14.06.2011
comment
У меня нет собственного библиотечного проекта в моем приложении, но все же я получил эту ошибку. Итак, каково решение для этого? - person Shreyash Mahajan; 12.11.2011
comment
если это не сработает, после этого будет работать перезапуск eclipse. - person ercu; 24.11.2011
comment
Я получаю эту ошибку в первый раз, когда говорю Build All после очистки, но если я сделаю это снова, все будет нормально. В случае, если это поможет кому-то. - person Nick Gotch; 25.02.2012
comment
Я устал от этого, и это действительно решает рассматриваемую проблему, однако теперь, когда я делаю открытую декларацию, скажем, для класса, определенного в моей библиотеке, он открывает файл MyClass.class, он должен открыть файл MyClass.java. Другой вопрос SO относительно открытия .class вместо .java (stackoverflow.com/questions/9682074/) предлагает добавить проект библиотеки в качестве ссылки на проект в пути сборки! Получается, что нет способа решить обе проблемы одновременно? (с использованием Eclipse 4.2.0, JDT 3.8.0, ADT 20.0.3) - person Herr Grumps; 29.10.2012
comment
Я нашел слово здесь немного запутанным, но это правильный ответ. Лэнс Нанек более четко описывает, как перейти к пути сборки Java, выбрать вкладку «Проекты» и удалить оттуда библиотеку. - person Alan Moore; 14.01.2013
comment
после выполнения remove мое приложение не может найти символы в моей библиотеке, и это поможет: с этой новой функцией библиотеки вы не указываете проекты Android, от которых вы зависите, в разделе «Путь сборки Java» свойств. Вы делаете это в Android section свойств. - person Bill Hoo; 09.07.2013
comment
Это сработало для меня. Я думаю, что у меня все время была запись библиотеки на вкладке "Проекты пути сборки Java", а также запись для той же библиотеки под Android, и это никогда не вызывало проблем, пока я не изменил местоположение своих проектов ( как часть размещения этих проектов под Git). Я мог видеть, что моя библиотека была упомянута в файле .classpath, и что это исчезло, как только я удалил ее из пути сборки Java через пользовательский интерфейс Eclipse. Проблема, с которой я столкнулся, заключалась в том, что, хотя он собирался, когда я запускал его из IDE, он выдавал сообщение о том, что библиотека не найдена. Тем не менее, он побежал. к вашему сведению. - person Carl; 01.11.2013
comment
После этого я больше не могу импортировать классы Facebook в свой проект. Эклипс не может их найти - person LeSam; 07.02.2014
comment
Выполнив шаги ответа ОП, вам нужно щелкнуть правой кнопкой мыши проект приложения, щелкнуть «Свойства», щелкнуть «Android» и в разделе «Библиотека» отметить кнопку «Добавить» и добавить проект библиотеки. Затем все должно работать, как и ожидалось, без сообщений об ошибках. - person ban-geoengineering; 08.05.2014
comment
Спасибо, сэр. Мне удалось полностью решить проблему только после обновления раздела Android. - person Machado; 10.11.2014

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

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

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

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

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

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

person shecodesthings    schedule 21.09.2012

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

person rodrigo-silveira    schedule 03.06.2013

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

person Novazero    schedule 14.06.2011
comment
Вы хотите сказать, что в наши дни программирование стало больше похоже на вуду, чем на науку? :) Я попробую ваше предложение и доложу. А пока +1 за попытку помочь. - person an00b; 14.06.2011
comment
Я только что попытался удалить проект application, а затем повторно импортировать его. Не помогло. Теперь я попробую удалить проект библиотеки... - person an00b; 14.06.2011
comment
Я только что попытался удалить проект library, а затем повторно импортировать его. Не помогло. Теперь я подозреваю, что это настоящая проблема, например. неверная настройка каких-то путей или еще что-то с моей стороны. Что бы это могло быть? - person an00b; 14.06.2011

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

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

person darKoram    schedule 08.07.2012

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

person Jarett Millard    schedule 04.12.2013

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

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

person Shane    schedule 19.01.2015