Android - Android with FPCUPDeluxe/de

From Lazarus wiki
Jump to navigationJump to search
Warning-icon.png

Warnung: , der Artikel ist Beta

Android und Lazarus unter Linux Mint

Voraussetzungen

Ein eingerichtetes FPCUPDeluxe FPCUPDeluxe

Wer unter Linux mit Lazarus nach Android kompilieren möchte muss einiges an Einstellungen vornehmen. Ich habe es ausschließlich unter Linux Mint 19.3 Cinnamon 64bit getestet. Zuerst in einer Virtualbox Version.

Quellen:

Ich habe mich dazu entschieden das Modul LAMW zu verwenden, es läuft auch unter Linux und nimmt einem beim Einrichten der Lazarus IDE sehr viel Arbeit ab! Liste von Android Versionen:

Voraussetzungen:

Die in fpcupdeluxe derzeit verwendete LAMW (LazarusAndroidModulWizard) Version benötigt folgende Voraussetzungen:

Pakete installieren:

sudo apt-get install libx11-dev libgtk2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev libxtst-dev libatk1.0-dev libghc-x11-dev freeglut3 freeglut3-dev
sudo apt-get install git subversion make build-essential gdb zip unzip unrar wget

Solten per default bei Mint installiert sein.

# Java Pakete
sudo apt-get install openjdk-8-jdk 
# sudo apt-get install android-tools-adb ant

Ist nur nötig, wen man nicht openjdk als Standard hat.

# Open JDK aus Standard
sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64


Einen Ordner anlegen, für die Android spezifischen Pakete. Keine Leerzeichen im Pfad verwenden, dies erspart Ärger.

mkdir -p ~/Programme/android

Folgende Programme downloaden und in den Ordner ~/Programme/android entpacken:

  • Verschiedene Versionen von Gradle findet man hier (ich nahm 4.4.1, sonst anpassen):
  • Verschiedene Versionen von Gradle findet man hier (ich nahm 6.2.2, sonst anpassen):
    • https://gradle.org/releases/ Dort binary only wählen.
      Nachdem dem Entpacken gradle-x.x.x in gradle umbennen

      Wichtig, Pfade weiter unten müssen an die Version angepasst werden, zB. Export !

SDK-Manager downloaden und einrichten

Android SDK-Manager starten:

~/Programme/android/android-sdk-linux/tools/android

Es ist die neuste Version Android 10 (API29) vorausgewählt.

Die 3 Hakchen SDK Tools, SDK Platform-tools und SDK Build-tools drin lassen. Zusätzlich noch die Build-tools 27.0.3 anwählen (werden für 28 und 29 zusätzlich benötigt)

Folgendes installieren:

  • "Tools" --> "Android SDK Build-tools - 27.0.3"
  • "Extras" --> "Android Support Repository"
  • "Extras" --> "Google Play service"
  • "Extras" --> "Google Repository"

Folgendes entfernen:

  • "Android R" --> [alles entfernen]

NDK einrichten

Bei Android 10 (API29) benötigt man nur die SDK Plattform. Die anderen Haken entfernen. Die Systemimages werden nur benötigt wenn man zum Testen einen Emulator anlegen möchte. Ich möchte erst mal auf einen alten Handy testen. [Wer eine ältere Version nehmen möchte muss die dem entsprechende SDK Plattform wählen bzw. die passenden Build-tools nehmen. Zum Beispiel SDK Plattform von API 25 mit SDK Buil-tools 25.0.3. Es muss dann aber auch die passende NDK Datei ausgesucht werden. Für API 25 funktionierte bei mir android-ndk-r10e-linux-x86_64. ]

das Aktuelle NDK downloaden:

Momentan ist es android-ndk-r21-linux-x86_64. Den Inhalt nach ~/Programme/android entpacken. Den Ordner anschließend in ndk-bundle umbenennen.
Jetzt im Terminal folgende Links anlegen:

ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin ~/Programme/android/ndk-toolchain
ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9 ~/Programme/android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9
ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9 ~/Programme/android/sdk/ndk-bundle/toolchains/mipsel-linux-android-4.9

Am Ende bei ~/.bashrc folgendes einfügen:


Wen nicht vorhanden, folgende Datei im Home-Ordner anlegen: ~/.profile ?????????

Die Datei editieren, und a, Ende folgendes einfügen:

export ANDROID_SDK_ROOT="${HOME}/Programme/android/sdk"
# export GRADLE_HOME="${HOME}/Programme/android/gradle-4.4.1"
# export GRADLE_HOME="${HOME}/Programme/android/gradle-6.2.2"
export PATH="${PATH}:${HOME}/Programme/android/ndk-toolchain"
export PATH="${PATH}:${GRADLE_HOME}/bin"

Anschliessend speichern und beenden.

PC neustarten !

FPC/Lazarus Crosscompiler bauen

Lazarus mit FPCUPDeluxe bauen

Nun fpcupdeluxe starten. Ich empfehle für den Android Crosscompiler zusätzlich ein eigenes Lazarus zu installieren. Nach der Installation von Lamw wurden bei mir die Einstellungen der Lazarus IDE durcheinander gewürfelt. Die Cross Compiler für arm und i386 lassen sich mit den stable Versionen installieren. Der Cross Compiler für aarch64 nur mit der trunk. Ich habe mich deshalb hier für die trunk Versionen entschieden. Achtung: das neue Lazarus in ein anderes Verzeichnis als das schon vorhandene installieren. Wen trunk nicht geht, kann man alternativ trunk.git nehmen.


In Lazarus unter Tools, Options, General die Sprache auf deutsch umstellen. Lazarus neu starten. Folgende Versionen wurden bei mir installiert:

LAMW mit fpcupdeluxe installieren

Als nächstes noch lamw (falls noch nicht vorhanden) installieren: LAMW Manager :"Ein Installationsprogramm zum Generieren der Lazarus IDE [und aller erforderlichen Komponenten!], angefertigt um für Android zu entwickeln! zu lamw:

In FPCUPDeluxe folgendes einstellen:

  • Im Reiter Modules
    • lamw anwählen
    • Install module drücken, somit wird das Modul installiert.
  • Im Reiter Cross noch folgende CheckBoxen anwählen:
    • CPU: arm
    • OS: android
  • Button Install compiler drücken, somit wird der Cross-Compiler gebaut.

  • "Cross --> i386" Hacken ???? arm
  • "Cross --> arm" Hacken
  • "Cross --> android" Hacken
  • "Install compiler"

Fehler mit "Ja" bestätigen.

Lazarus einrichten

In Lazarus folgendes einstellen:

  • "Werkzeuge --> [LAMW] Android Module Wizard --> Paths Settings [Jdk,Sdk,Ndk]"
    • "Path to Java JDK" --> /usr/lib/jvm/java-11-openjdk-amd64
    • "Path to Ant bin:" --> /usr/bin
    • "Path to Gradle" --> /home/tux/Programme/android/gradle-4.4.1
    • "Path to Gradle" --> /home/tux/Programme/android/gradle-6.2.2
    • "Path to Gradle" --> /home/tux/fpcupdeluxe_android.alt/ccr/lamw-gradle/gradle-6.2.1
    • "Path to Android NDK" --> /home/tux/Programme/android/sdk/ndk-bundle
    • "Path to Android NDK" --> /home/tux/Programme/android/android-ndk-r21
    • "NDK Version" --> 11
    • "Path to Android SDK" --> /home/tux/Programme/android/sdk
    • "Path to Android SDK" --> /home/tux/Programme/android/android-sdk-linux

Erstes Project

Als nächstes

  • "Datei --> Neu --> Project --> LAMW[GUI]Android Module"

"Ok"

"Path to Workspace" --> /home/tux/android_test "Architekture/Instructions" --> x86 ?????
"Architekture/Instructions" --> ARMv7a+VFPv3 "Ok"

Projekt will sich speicher, mit "speichern" bestätigen.

Erster Start

  • "Start" --> [LAMW] Build Android Apk and Run
    Warnung mit "ja" bestätigen.