Installare le librerie condivise di Google Maps su Android

Posted on 9 August 2012 by Paolo Bernardi

Durante lo sviluppo di un’applicazione Android che fa uso delle librerie condivise di Google Maps mi ha riservato una bella sorpresa: provando ad installare quell’app sul mio cellulare (ha una ROM stramba, Oxygen-RC-qualcosa) ho ricevuto questo messaggio d’errore:

$ adb install Pippo.apk
Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]

Neanche l’installazione di Google Maps dallo store fornisce quelle librerie condivise, che tuttavia sono necessarie per lo sviluppo di applicazioni Android che fanno uso di Google Maps. Per risolvere questo problema ho riadattato un po’ la procedura presentata in questo articolo.

Prima di tutto bisogna scaricare il file zip delle Google Apps della vostra ROM; ad esempio per Cyanogen potete cercare all’indirizzo

http://wiki.cyanogenmod.com/wiki/Latest_Version/Google_Apps

Dopo aver scaricato il file zip appropriato, estraete questi due file…

  1. /system/etc/permissions/com.google.android.maps.xml
  2. /system/framework/com.google.android.maps.jar

… poi copiateli sulla SD card del cellulare (io ad esempio li ho messi dentro la directory Download).

A questo punto dovete eseguire una serie di comandi sul cellulare per:

  1. rimontare la directory /system (la memoria interna del telefonino) in modalità di lettura-scrittura;
  2. copiare i due file di cui sopra al posto giusto.

Per fare ciò potete usare adb shell se avete l’SDK di Android installato, oppure un emulatore di terminale che giri direttamente sul cellulare.

I comandi vanno eseguiti con i permessi di root: se non lo siete, diventatelo col comando su.

# mount -o rw,remount /system
# cp /mnt/sdcard/Download/com.google.android.maps.xml /system/etc/permissions/
# cp /mnt/sdcard/Download/com.google.android.maps.jar /system/framework/

Ora riavviate il cellulare e godetevi le vostre librerie condivise di Google Maps!

Get in touch

Thank you for contacting me, I will be in touch with you as soon as possible.
There was an error while trying to send the comment, please try again later.