2010-02-17 22 views
45

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

Tengo esta excepción en logcat.

¿Alguien me puede guiar?

+0

Elaborar. ¿Esto es de un emulador? ¿Dispositivo? ¿Qué versión de SDK? –

Respuesta

65

Como dijo CommonsWare, a su emulador le falta la biblioteca. La documentación de la Biblioteca de Google Maps Overview page tiene información sobre cómo crear el tipo correcto de dispositivo virtual para el emulador. La esencia es:

Ejecute el Administrador de AVD utilizando el comando de Android sin ninguna opción. Si está desarrollando en Eclipse/ADT, también puede acceder a la herramienta desde Window> Android SDK y AVD Manager.

  1. Haga clic en el botón "Nuevo" para comenzar a crear un nuevo AVD.
  2. En el cuadro de diálogo que aparece, especifique un nombre para el AVD y seleccione el objetivo de la imagen del sistema que desea que utilice el AVD. Seleccione uno de los objetivos "Google APIs (Google Inc.)", asegurándose de elegir una versión cuyo nivel API coincida con el atributo android: minSdkVersion en el manifiesto de su aplicación, como se describe anteriormente.
  3. Configure las otras opciones y luego haga clic en "Crear AVD".

Una vez que haya terminado de crear el AVD, puede ejecutarlo desde la interfaz de usuario de AVD Manager o puede usar la interfaz de línea de comandos del emulador. Si está desarrollando en Eclipse, puede configurar una Configuración de ejecución para iniciar el AVD e instalar su aplicación en él.

Para obtener más información acerca de los AVD, consulte Android Virtual Devices en el sitio de Desarrolladores de Android.

+0

muchas gracias .... :) – Praveen

8

Su emulador no tiene las API de Google. Cree un AVD nuevo que contenga las API de Google, y este error debería desaparecer.

+0

gracias por la respuesta. pero aún recibes esa excepción. puede decirme el proceso paso a paso ... – Praveen

0

He experimentado este error después de que el AVD se configuró correctamente y funciona bien. El AVD todavía estaba usando las API de Google y pude ver la referencia a la biblioteca de mapas en Eclipse. La única forma que encontré para resolver esto fue eliminar el AVD y crear uno nuevo, tal como lo recomienda fiXedd.

9

Se me ha ocurrido este error en un dispositivo real, no en un AVD como las otras respuestas. En mi caso, me estaba ejecutando en un Nexus S con una ROM personalizada que no tenía instalado Google Maps.

He leído elsewhere que la biblioteca compartida com.google.android.maps se incluye con la ROM y no se incluye como parte de un APK.

Por lo tanto, la solución para mí era volver al stock ROM que tenía instalado Google Maps.

Por cierto, el título de este hilo se refiere a un error que se encuentra en el LogCat de DDMS. El primer error la mayoría de los usuarios verán (antes de comprobar LogCat) estará en la consola de Eclipse:

Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY 
Please check logcat output for more details. 
3

Como jfritz42 Tengo este error en un dispositivo real con una ROM personalizada (CyanogenMod). El error fue causado por el hecho de que no instalé el Google Apps package, ya que contiene muchas aplicaciones que solo me molestan. Sin embargo, hay una solución sobre cómo instalar la biblioteca google.maps sin combinar su sistema con las 19 aplicaciones de Google en este paquete.Simplemente descargue el paquete (archivo zip) y elimine todos los archivos .apk del sistema/aplicación en este zip. Luego, puede instalar el zip usando el Administrador de ROM o mediante el modo de recuperación. Entonces debería tener la biblioteca de mapas instalada en su sistema. Las aplicaciones de Google incluidas (por ejemplo, la aplicación Mapas) en este paquete se pueden instalar por separado posteriormente.

0

FiXedd (ver arriba) es correcto.

Puede editar dispositivos que ya ha creado o crear uno nuevo. Al crear o editar un dispositivo dentro de la AVD Manager, en lugar de seleccionar este tipo de versión de destino:

xxx Android - API Nivel x

Sólo tiene que utilizar este tipo en su lugar:

Google APIs (Google Inc.) - Nivel de API x

2

En caso de dispositivo real intente eliminar del archivo de manifiesto:

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

8

Tuve el problema similar en un dispositivo real. Después de un botín de google encontré esta respuesta

fixing missing shared library. Resulta que en algunas roms personalizadas falta la biblioteca comp.google.android.map, debe instalarla manualmente.

  • googleapps descarga
  • extracto de dos archivos
  • sistema/etc/permisos/com.google.android.maps.xml
  • sistema/marco/com.google.android.maps.jar
  • volver a montar el/RW sistema de archivos del sistema (mount -o rw, volver a montar/sistema)
  • copiar los archivos en
  • hacer un chmod 644 en ellos
  • reiniciar
+1

esa es la solución real, creo, otros son solo explicaciones, esto incluso funciona para el dispositivo real, además de emuladores – iBabur

+0

Fantástico .. Gracias .. esta fue la única respuesta real que encontré. Esto debe ser aceptado y votado 100 veces. – Siddharth

Cuestiones relacionadas