Spielt man die neueste Version 22 des Android Development Kits (ADK) auf, so kann man mit IDEA IntelliJ seine Projekte nicht mehr kompilieren. Neben dem Problem mit den fehlenden Build-Tools liegt es auch daran, dass einige Sachen nicht mehr dort sind, wo sie noch bei Version 21 waren. Man erhält den Fehler
android-apt-compiler: Cannot run program "/opt/android-sdk-linux_86/platform-tools/aapt": error=2, Datei oder Verzeichnis nicht gefunden (File or directory not found).
Setzt man den Link, so klappt dieser Schritt, aber der nächste scheitert mit
Android Dex: Cannot find file /opt/android-sdk-linux_86/platform-tools/lib/dx.jar
Um beide Probleme zu lösen und wieder kopilieren zu können, wechselt man im ADK Verzeichnis in das Unterverzeichnis platform-tools und setzt zwei Symbolische Links:
ln -s ../build-tools/17.0.0/aapt .
ln -s ../build-tools/17.0.0/lib .
Und schon kann man wieder kompilieren.
Dienstag, 28. Mai 2013
Mittwoch, 8. Mai 2013
Google Maps API v2 im Android Emulator
Google hat seine Maps Anwendung auf die Version 2 aktualisiert. Diese lässt sich nicht so einfach im Android Emulator verwenden, denn dieser wird mit der alten Version ausgeliefert und eine Anwendung, die die neue API verwendet, liefert nur eine Fehlermeldung, dass man Upgraden soll. Es gibt aber einen Trick, wie man Google Maps trotzdem im Emulator zum Laufen bekommt:
Zuerst benötigt man ein AVD mit mindestens API Level 9 (2.3.1), aber ohne Google APIs:
Man kann auch eine höhere Version wählen, aber wie gesagt muss sie ohne Google APIs sein. Google Maps sollte laut Manifest auch mit Version 8 laufen, aber man erhält dann eine Fehlermeldung über ein inkompatibles CPU/ABI Interface.
Als nächstes benötigt man zwei APKs, die man am besten von einem gerooteten Android erhält:
adb -d pull /data/app/com.android.vending-2.apk
adb -d pull /data/app/com.google.android.gms-2.apk
Sollten die Dateien nicht gefunden werden, kann man mit
adb -d shell
shell@android:/$ su
shell@android:/# ls /data/app/
nachsehen, ob sie eventuell doch eine andere Zahl hinten stehen haben. Hier die MD5-Prüfsummen der aktuellen Dateien:
558e12681e333d91f39f688aadbaf6ee com.android.vending-2.apk
2d3daf756852d813cd78366342b33d4d com.google.android.gms-2.apk
Zuerst benötigt man ein AVD mit mindestens API Level 9 (2.3.1), aber ohne Google APIs:
Emulator Einstellungen aus dem Android SDK
Man kann auch eine höhere Version wählen, aber wie gesagt muss sie ohne Google APIs sein. Google Maps sollte laut Manifest auch mit Version 8 laufen, aber man erhält dann eine Fehlermeldung über ein inkompatibles CPU/ABI Interface.
Als nächstes benötigt man zwei APKs, die man am besten von einem gerooteten Android erhält:
adb -d pull /data/app/com.android.vending-2.apk
adb -d pull /data/app/com.google.android.gms-2.apk
Sollten die Dateien nicht gefunden werden, kann man mit
adb -d shell
shell@android:/$ su
shell@android:/# ls /data/app/
nachsehen, ob sie eventuell doch eine andere Zahl hinten stehen haben. Hier die MD5-Prüfsummen der aktuellen Dateien:
558e12681e333d91f39f688aadbaf6ee com.android.vending-2.apk
2d3daf756852d813cd78366342b33d4d com.google.android.gms-2.apk
Jetzt kann man den Emulator starten und die APKs installieren
adb -e install com.android.vending-2.apk
adb -e install com.google.android.gms-2.apk
Google Maps API v2 im Android Emulator
Will man Google Maps direkt verwenden, benotigt man noch com.google.android.apps.maps-1.apk, wobei man hier aufpassen muss, von welchem Gerät man sie bekommt. Die von meinem Nexus 4 läuft nur ab API Level 14 (4.0):
Google Maps im Emulator
Abonnieren
Posts (Atom)