Installation von Cordova mit Android Unterstützung unter Ubuntu 18.04
Hinweis
Bei der Installation von Ubuntu 18.04 kann eine Minimalinstallation ausgewählt werden. Bevor mit der Installation begonnen wird, empfiehlt sich eine Systemaktualisierung:sudo apt update sudo apt upgrade
Installation von Java 8
sudo apt install openjdk-8-jdkNach der Installation kann die Java Version abgefragt werden:
$ java -version openjdk version "1.8.0_162" OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12) OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode) $ javac -version javac 1.8.0_162
Installation Node.js und npm
sudo apt install nodejs sudo apt install npmDie installierten Versionen lassen sich abfragen mit:
$ nodejs --version v8.10.0 $ npm --version 3.5.2
Installation von Cordova
sudo npm install -g cordova
Installation von Android Studio
Android Studio wird verwendet, um benötigte Komponenten zu installieren wie z.B. Gradle und das Android SDK. Android Studio kann unter Android.com (64 Bit!) als ZIP Datei heruntergeladen werden. Zusätzlich werden folgende Pakete im Vorfeld der Installation benötigt:sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386Soll der Android Emulator verwendet werden sollte sichergestellt werden, das KVM installiert ist. Der aktuell verwendete User muss in die Gruppe kvm eingetragen werden.
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils sudo adduser $USER kvmIch habe mich für eine Installation unter /opt entschieden. Damit die Installation gelingt, öffne ich das Verzeichnis temporär für Schreibzugriffe.
sudo chmod 777 /optZur Vorbereitung der Android SDK Installation wird noch ein weiteres Verzeichnis im /opt Ordner angelegt
cd /opt mkdir android-sdkDie vorliegende Android Studio ZIP Datei wird nun nach /opt/android-studio entpackt. Um Android Studio besser aufrufen zu können, wird im Home Verzeichnis ein Link gesetzt:
cd -- cd Downloads unzip android-studio-ide-173.4720617-linux.zip -d /opt cd .. ln -s /opt/android-studio/bin/studio.sh studio ./studioBeim Start von Android Studio -> Do not import settings
Install Type -> Custom -> Next
Select UI Theme -> IntelliJ -> Next
SDK Components Setup
Android SDK Location ändern! -> /opt/android-sdk
Alles markieren (wenn möglich): Android SDK, Android SDK Platform, API 27, Android Virtual Device -> Next
Verify Settings -> Next
Emulator Settings -> Finish
Falls das SDK nicht installiert werden sollte (Berechtigungsprobleme etc.) kann Android Studio nochmals aufgerufen werden. Das SDK kann dann nachinstalliert werden. Welcome to Android Studio
Nun werden wir ein Dummy Projekt anlegen:
-> Start a new Android Studio project
-> Next
-> Next
-> Add No Activity -> Next
-> Next
-> Finish
Android Studio Menü -> Tools -> SDK Manager
Android 8 (Oreo) auswählen (API Level 26)
-> Show Package Details auswählen
-> Android 8.0 (Oreo) -> Google APIs Intel x86 Atom_64 System Image (API 26) auswählen
-> Apply
-> License Agreement -> Accept -> Next
-> Finish
-> OK
Android Studio Menü -> Tools -> AVD Manager
-> Create Virtual Device
-> Nexus 5X -> Next
-> System Image -> Oreo (API Level 26 [!]) -> Download -> Finish
-> Next
Verify Configuration -> Finish
Da die Basisinstallation von Android Studio inkl. SDK jetzt abgeschlossen ist, kann die temporäre Schreibberechtigung für /opt wieder aufgehoben werden:
sudo chmod 755 /optDamit alle Komponenten von Cordova erkannt werden, muss das Environment angepasst werden. Statt vi kann natürlich auch jeder andere Editor zum Einsatz kommen :)
sudo vi /etc/environmentEs werden hier in der PATH Variablen das Verzeichnis zu Gradle /opt/android-studio/gradle/gradle-4.4/bin und zu den Android Studio Binaries /opt/android-studio/bin eingetragen. Beispiel:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: /opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-studio/gradle/gradle-4.4/bin" JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" ANDROID_HOME="/opt/android-sdk" ANDROID_EMULATOR_USE_SYSTEM_LIBS=1Die Einstellungen können nun mit
source /etc/environmentgeladen werden. Nun kann ein Hello World Projekt angelegt werden und danach in das Projektverzeichnis hello gewechselt werden:
cordova create hello com.example.hello HelloWorld cd helloAls Plattform wird dem Projekt Android hinzugefügt:
cordova platform add androidEs werden nun alle Voraussetzungen geprüft mit:
cordova requirementsBeispiel Ausgabe:
Android Studio project detected Requirements check results for android: Java JDK: installed 1.8.0 Android SDK: installed true Android target: installed android-27,android-26 Gradle: installed /opt/android-studio/gradle/gradle-4.4/bin/gradleGradle Berechtigungen setzen:
chmod 755 /opt/android-studio/gradle/gradle-4.4/bin/gradleBuild Prozess starten. Emulator mit der App starten.
cordova build cordova emulateTroubleshooting
(node:14359) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'semver' of nullDie Ursache für diesen Fehler liegt wahrscheinlich darin, das der Android Emulator mit der falschen SDK Version (z.B. SDK Version 27 statt SDK Version 26) gestartet wurde. Es sollte daher ggf. manuell im Android Studio unter Menü->Tools->AVD Manager geprüft werden, ob das konfigurierte Device tatsächlich mit der SDK Version 26 konfiguriert wurde.
Nützliche Links:
Installation Android Studio (englisch)
Android Emulator Acceleration (englisch) Create your first Cordova app (englisch)