02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!
Я получил это исключение в logcat.
Может ли кто-нибудь вести меня?
02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!
Я получил это исключение в logcat.
Может ли кто-нибудь вести меня?
Как сообщает CommonsWare, ваш эмулятор не хватает библиотеки. Документация библиотеки Google Maps Страница обзора содержит информацию о том, как создать правильный тип виртуального устройства для эмулятора. Суть заключается в следующем:
Запустите AVD Manager, используя команду android без каких-либо параметров. Если вы работаете в Eclipse/ADT, вы также можете получить доступ к этому инструменту из окнa > Android SDK и AVD Manager.
- Нажмите кнопку "Создать", чтобы начать создание нового AVD.
- В появившемся диалоговом окне укажите имя для AVD и выберите цель образа системы, которую вы хотите использовать AVD. Выберите одну из целей Google API (Google Inc.), чтобы выбрать версию, уровень API которой соответствует атрибуту android: minSdkVersion в манифесте приложения, как описано выше.
- Настройте другие параметры и затем нажмите "Создать AVD".
Как только вы закончите создание AVD, вы можете запустить его из пользовательского интерфейса AVD Manager, или вы можете использовать интерфейс командной строки эмулятора. Если вы работаете в Eclipse, вы можете настроить Run Configuration, чтобы запустить AVD и установить на нем свое приложение.
Для получения дополнительной информации о AVD см. Android Virtual Devices на сайте разработчиков Android.
Эта ошибка возникла у меня на самом устройстве, а не на AVD, как на другие ответы. В моем случае я работал на Nexus S с пользовательским ПЗУ, у которого не было установленных Карт Google.
Я прочитал в другом месте, что общая библиотека com.google.android.maps поставляется вместе с самим ПЗУ и не входит в состав APK.
Поэтому решение для меня состояло в том, чтобы вернуться к запасному ПЗУ, в котором установлены Карты Google.
BTW, заголовок этого потока относится к ошибке, обнаруженной в DDMS LogCat. Первая ошибка, которую большинство пользователей увидит (перед проверкой LogCat), будет в консоли Eclipse:
Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
Please check logcat output for more details.
У меня была аналогичная проблема на реальном устройстве. После грабежа googling я нашел этот ответ
исправление отсутствующей общей библиотеки. Оказывается, что на некоторых пользовательских ромах отсутствует библиотека comp.google.android.map, вам нужно установить ее вручную.
В вашем эмуляторе отсутствуют API Google. Создайте новый AVD, содержащий API Google, и эта ошибка должна исчезнуть.
Как jfritz42 я получил эту ошибку на реальном устройстве с кастомным ПЗУ (Cyanogenmod). Ошибка была вызвана тем, что я не установил пакет Служб Google, поскольку он содержит множество приложений, которые меня просто раздражают. Тем не менее, есть решение, как установить библиотеку google.maps, не добавляя в вашу систему 19 Служб Google из этого пакета. Просто скачайте пакет (zip файл) и удалите все файлы .apk из system/app в этом zip файле. После этого вы можете установить zip-архив с помощью диспетчера ROM или в режиме восстановления. Тогда у вас должна быть установлена библиотека карт в вашей системе. Службы Google, включенные в этот пакет (например, приложение "Карты"), впоследствии могут быть установлены отдельно.
В случае с реальным устройством попробуйте удалить из файла манифеста:
<uses-library android:name="com.google.android.maps" />
Я испытал эту ошибку после того, как AVD был настроен правильно и работает нормально. AVD все еще использовал API Google, и я мог видеть ссылку на библиотеку карт в Eclipse. Единственный способ найти это - удалить AVD и создать новый, как рекомендовал fiXedd.
fiXedd (см. выше) является правильным.
Вы можете редактировать уже созданные устройства или создать новый. Когда вы создаете или редактируете устройство внутри AVD Manager, вместо выбора такого типа целевой версии:
Android x.x.x - Уровень API x
Просто используйте этот вид вместо:
API Google (Google Inc.) - Уровень API x