В Android отсутствует общая библиотека. - PullRequest
45 голосов
/ 17 февраля 2010

02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!

Я получил это исключение в logcat.

Может ли кто-нибудь направить меня?

Ответы [ 8 ]

65 голосов
/ 18 февраля 2010

Как сказал CommonsWare, в вашем эмуляторе отсутствует библиотека. Обзорная документация библиотеки Google Карт содержит информацию о том, как создать правильное виртуальное устройство для эмулятора. Суть:

Запустите AVD Manager с помощью команды android без каких-либо опций. Если вы разрабатываете в Eclipse / ADT, вы также можете получить доступ к инструменту из Window> Android SDK и AVD Manager.

  1. Нажмите кнопку «Создать», чтобы начать создание нового AVD.
  2. В открывшемся диалоговом окне укажите имя для AVD и выберите целевой образ системы, который вы хотите использовать AVD. Выберите одну из целей "Google APIs (Google Inc.)", убедившись, что в манифесте вашего приложения выбрана версия, уровень API которой соответствует атрибуту android: minSdkVersion, как описано выше.
  3. Настройте другие параметры и нажмите «Создать AVD».

Как только вы закончили создание AVD, вы можете запустить его из пользовательского интерфейса AVD Manager или использовать интерфейс командной строки эмулятора. Если вы разрабатываете в Eclipse, вы можете настроить конфигурацию запуска, чтобы запустить AVD и установить на него свое приложение.

Для получения дополнительной информации о AVD см. Виртуальные устройства Android на сайте разработчиков Android.

10 голосов
/ 02 февраля 2014

У меня была похожая проблема на реальном устройстве. После множества поисков я нашел этот ответ

исправление отсутствующей общей библиотеки . Оказывается, что на некоторых пользовательских дисках библиотека comp.google.android.map отсутствует, вы должны установить ее вручную.

  • скачать googleapps
  • извлечь два файла
  • system / etc / permissions / com.google.android.maps.xml
  • система / структура / com.google.android.maps.jar
  • перемонтирование файловой системы / system rw (mount -o rw, remount / system)
  • скопировать файлы в
  • сделать на них chmod 644
  • перезагрузка
10 голосов
/ 12 июля 2011

Эта ошибка произошла со мной на реальном устройстве, а не на AVD, как в других ответах. В моем случае я работал на Nexus S с пользовательским ПЗУ, на котором не было установлено Google Maps.

Я прочитал в другом месте , что общая библиотека com.google.android.maps связана с самим ПЗУ и не является частью APK.

Поэтому решение для меня было вернуться к стоковому ПЗУ с установленными Google Maps.

Кстати, название этой темы относится к ошибке, обнаруженной в DDMS LogCat. Первая ошибка, которую увидит большинство пользователей (до проверки LogCat), будет в консоли Eclipse:

Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY 
Please check logcat output for more details.
8 голосов
/ 17 февраля 2010

В вашем эмуляторе отсутствуют API Google. Создайте новый AVD, содержащий API Google, и эта ошибка должна исчезнуть.

3 голосов
/ 31 августа 2011

Как jfritz42 я получил эту ошибку на реальном устройстве с кастомным ПЗУ (Cyanogenmod). Ошибка была вызвана тем, что я не установил пакет Служб Google , поскольку он содержит множество приложений, которые просто раздражают меня. Однако есть решение, как установить библиотеку google.maps, не добавляя в свою систему 19 Служб Google из этого пакета. Просто скачайте пакет (zip-файл) и удалите все файлы .apk из system / app в этом zip-файле. После этого вы можете установить zip-архив с помощью диспетчера ROM или в режиме восстановления. Тогда у вас должна быть установлена ​​библиотека карт в вашей системе. Службы Google, входящие в этот пакет (например, приложение «Карты»), могут быть впоследствии установлены отдельно.

2 голосов
/ 21 апреля 2013

В случае с реальным устройством попробуйте удалить из файла манифеста:

<uses-library android:name="com.google.android.maps" />

0 голосов
/ 04 апреля 2012

fiXedd (см. Выше) правильно.

Вы можете редактировать устройства, которые вы уже создали, или создать новое.Когда вы создаете или редактируете устройство в AVD Manager, вместо выбора типа цели:

Android xxx - Уровень API x

Просто используйте этот тип:

Google API (Google Inc.) - уровень API x

0 голосов
/ 25 мая 2011

Я столкнулся с этой ошибкой после того, как AVD был настроен правильно и работает нормально. AVD все еще использовал API Google, и я мог видеть ссылку на библиотеку карт в Eclipse. Единственный способ решить эту проблему - удалить AVD и создать новый, как рекомендует fiXedd.

...