Android App Entwicklung mit Cordova / PhoneGap
Begriffe[Bearbeiten]
ADT = Android Developer Tools
Benötigte Komponenten und Installation[Bearbeiten]
Am einfachsten mit dem Komplettpaket:
http://developer.android.com/sdk/index.html
Enthält:
- Eclipse + ADT plugin
- Android SDK Tools
- Android Platform-tools
- The latest Android platform
- The latest Android system image for the emulator
Installation der benötigten Werkzeuge[Bearbeiten]
Download und Entpacken von obigem Link:
adt-bundle-<os_platform>.zip
Kopieren des Ordners z.B. userverzeichnis/Development/. Darin enthalten ist das Android SDK und Eclipse
Jetzt haben wir eine Android Entwicklungsumgebung.
PATH Variable für das Android SDK setzen[Bearbeiten]
Wir öffnen die bash_profile Datei (wenn Sie nicht vorhanden ist wird Sie erzeugt.
touch ~/.bash_profile; open ~/.bash_profile
Jetzt können wir den Pfad zum Android SDK setzen und die Datei abspeichern. So wird bei jedem Terminal Aufruf der Pfad gesetzt. Man muß das also später nicht mehr machen.
export PATH=${PATH}:/Users/username/Development/adt-bundle-mac-x86_64/sdk/platform-tools:/Users/username/Development/android-sdk-macosx/sdk/tools
Manche User berichten von Fehlern im create Skript bei obiger Konfiguration und wenn die Dateien in /Development liegen (also nicht im Userverzeichnis). Bei mir hat es geholfen die Android und Cordova Tools im Userverzeichnis unterzubringen und die Pfade etwas anders ui setzen. Was genau die Ursache war habe ich nicht überprüft. Jedenfalls hat folgende Konfiguration des Pfades (und einrichten der Ordnerstruktur) funktioniert:
export PATH=/Users/schlegel/Development/adt-bundle-mac-x86_64/sdk/platform-tools:/Users/schlegel/Development/adt-bundle-mac-x86_64/sdk/tools:$PATH
Datei abspeichern und ausführen.
source ~/.bash_profile
Projekt beginnen Old School bis 2.0.0[Bearbeiten]
DEPRECATED
In höheren Versionen gibt es kein cordova.jar mehr und ein paar Veränderungen in der Struktur. Es werden die Command Line Tools empfohlen s.u.
- Android Projekt definieren
- Cordova Bibliotheken importieren
- Start-Java-Datei für PhoneGap bestimmen
- Grundklasse modifizieren, um DroidGap zu erweitern.
- setContentView ändern, damit die URL Ihres HTML-basierten Home-Bildschirms, der auch manuell erstellt wird, geladen wird.
Android Projekt anlegen[Bearbeiten]
File > New Android Application Project
Create new project in workspace
- new blank activity (Main Activity)
PhoneGap integrieren[Bearbeiten]
Ordnerstruktur anlegen[Bearbeiten]
Wir benötigen im Android Projekt folgende Ordner für PhoneGap:
assets/www libs
Der HTML Code und das JavaScript für PhoneGap wird später in assets/www landen.
PhoneGap Komponenten kopieren[Bearbeiten]
Aus der PhoneGap / Cordova Distribution den Android Ordner suchen und folgende Dateien ins Projekt kopieren:
cordova-1.5.0.js > assets/www cordova-1.5.0.jar > libs/ xml directory > res/
Projekt mit dem Cordova Create Script beginnen (Mac OS)[Bearbeiten]
Cordova Startcode erzeugen[Bearbeiten]
http://docs.phonegap.com/en/2.1.0/guide_command-line_index.md.html#Command-Line%20Usage_android
In der Distribution gibt es ein create Skript unter
cordova-android/bin/create
zum Ausführen werden als Parameter mitgegeben:
- Path to your new Cordova Android project
- Package name, following reverse-domain style convention
- Main Activity name
Beispiele
/path/to/cordova-android/bin/create /path/to/my_new_cordova_project com.example.cordova_project_name CordovaProjectName
/Users/schlegel/Development//cordova-2.4.0/cordova-android/bin/create /Users/schlegel/Development/workspace/helloCordova de.webmynet.helloCordova helloCordova
Startcode in Eclipse integrieren[Bearbeiten]
Der vom creat Skript erzeugte Code kann in Eclipse mit File > New > Project... Importiert werden. Dazu muß man im Auswahlfeld Import from Existing Code (genauer Wortlaut variiert) das Projekt importieren.
Probleme beheben[Bearbeiten]
Fehler beim Create Skript[Bearbeiten]
An unexpected error occurred: ANDROID_BIN="${ANDROID_BIN:=$( which android )}" exited with 1
Das Problem liegt oft an fehlenden Konstanten (hier ANDROID_BIN) und dies liegt wiederum oft an falsch gesetzter PATH Variable. Eventuell auch mal Android Tools und Cordova innerhalb des Userverzeichnisses anlegen. Scheinbar hat auch schon geholfen die PATH Variable anders zu setzen (s.o.)
Eclipse zeigt Fehler beim Kompilieren des Beispiel Projekts[Bearbeiten]
- Mit rechts auf das Projekt klicken Properties > Android > Neueste Android API auswählen
- Project > Clean...
Eclipse logcat - SQLite Log[Bearbeiten]
error opening file... error log sqlite failed to load from /cachedGeoposition.db
The WebView component used by PhoneGap tries to load that DB file but it is only actually used by the Android Browser. You are safe to ignore it.