web-dev-qa-db-fra.com

Bibliothèque partagée manquante dans Android.

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

J'ai eu cette exception dans logcat.

Quelqu'un peut-il me guider?

45
Praveen

Comme l'a dit CommonsWare, votre émulateur manque de la bibliothèque. La page de documentation Présentation de la bibliothèque Google Maps contient des informations sur la création du type de périphérique virtuel approprié pour l'émulateur. Le Gist est:

Lancez le gestionnaire AVD en utilisant la commande Android sans aucune option. Si vous développez dans Eclipse/ADT, vous pouvez également accéder à l'outil à partir de Fenêtre> SDK Android et du gestionnaire AVD.

  1. Cliquez sur le bouton "Nouveau" pour commencer à créer un nouveau fichier AVD.
  2. Dans la boîte de dialogue qui apparaît, spécifiez un nom pour le DAV et sélectionnez la cible d'image système que vous souhaitez utiliser. Sélectionnez l'une des cibles "Google API (Google Inc.)" en veillant à choisir une version dont le niveau d'API correspond à l'attribut Android: minSdkVersion dans le manifeste de votre application, comme décrit ci-dessus.
  3. Configurez les autres options, puis cliquez sur "Créer un AVD".

Une fois que vous avez créé AVD, vous pouvez l'exécuter à partir de l'interface utilisateur du gestionnaire AVD ou utiliser l'interface de ligne de commande de l'émulateur. Si vous développez dans Eclipse, vous pouvez configurer une configuration d'exécution pour démarrer AVD et y installer votre application.

Pour plus d'informations sur les AVD, voir Appareils virtuels Android sur le site Android Developers.

65
Jeremy Logan

Cette erreur m'est survenue sur un périphérique réel, pas sur un DAV, comme dans les autres réponses. Dans mon cas, j’utilisais un Nexus S avec un ROM personnalisé sur lequel Google Maps n’était pas installé.

J'ai lu ailleurs que la bibliothèque partagée com.google.Android.maps est fournie avec le ROM lui-même et n'est pas fournie avec un APK.

Par conséquent, la solution pour moi était de revenir au stock ROM sur lequel Google Maps était installé.

BTW, le titre de ce fil fait référence à une erreur trouvée dans le DDMS LogCat. La première erreur que la plupart des utilisateurs verront (avant de vérifier LogCat) sera dans la console d'Eclipse:

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

J'ai eu le même problème sur un appareil réel. Après un butin de googler j'ai trouvé cette réponse

correction de la bibliothèque partagée manquante . Il s'avère que sur certaines ROM personnalisées, la bibliothèque comp.google.Android.map est manquante, vous devez l'installer manuellement. 

  • télécharger googleapps
  • extraire deux fichiers 
  • système/etc/permissions/com.google.Android.maps.xml 
  • system/framework/com.google.Android.maps.jar
  • remonter le système de fichiers/system rw (mount -o rw, remount/system)
  • copier les fichiers dans
  • faire un chmod 644 sur eux
  • redémarrer
9
Nys

Il manque les API Google à votre émulateur. Créez un nouveau DAV qui contient les API Google. Cette erreur devrait disparaître.

8
CommonsWare

En tant que jfritz42, ​​j'ai eu cette erreur sur un périphérique réel avec un ROM personnalisé (CyanogenMod). L'erreur est due au fait que je n'ai pas installé le package Google Apps , car il contient de nombreuses applications qui ne font que m'agacer. Cependant, il existe une solution pour installer la bibliothèque google.maps sans regrouper votre système avec les 19 Google Apps de ce package. Il suffit de télécharger le package (fichier Zip) et de supprimer tous les fichiers .apk du système/application de ce fichier Zip. Ensuite, vous pouvez installer le zip en utilisant le gestionnaire ROM ou en mode de récupération. Ensuite, vous devriez avoir la bibliothèque de cartes installée sur votre système. Les applications Google Apps incluses (par exemple, l'application Cartes) dans ce package peuvent être installées séparément par la suite.

3
Stefan Endrullis

Dans le cas avec un périphérique réel, essayez de supprimer du fichier manifeste:

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

2
Tapa Save

J'ai rencontré cette erreur après que l'AVD ait été configuré correctement et fonctionne correctement. L'AVD utilisait encore les API Google et je pouvais voir la référence à la bibliothèque de cartes dans Eclipse. Le seul moyen que j’ai trouvé pour résoudre ce problème était de supprimer l’AVD et d’en créer un nouveau, comme conseillé par fiXedd.

0
John J Smith

fiXedd (voir ci-dessus) est correct. 

Vous pouvez modifier les appareils que vous avez déjà créés ou en créer un nouveau. Lorsque vous créez ou modifiez un périphérique dans AVD Manager, au lieu de sélectionner ce type de version cible:

Android x.x.x - API Niveau x

Utilisez simplement ce type à la place:

API Google (Google Inc.) - API de niveau x

0
TwoByteHero