Android - Android with FPCUPDeluxe/de

From Free Pascal wiki
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:

# adb
sudo apt-get install adb


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

Zuerst eine Trunk mit FPCUPDeluxe bauen. Fur ARM und i386 kann man auch die stable verwenden. Siehe hier:

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 probieren. Wen alles versagt, zu einem späteren Zeitpunkt probieren.


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.

Cross-Compiler bauen:

  • Im Reiter Cross noch folgende CheckBoxen anwählen:
    • Bei ARM:
      • CPU: arm
      • OS: android
    • Bei i386:
      • CPU: i386
      • OS: android
  • Button Install compiler drücken, somit wird der Cross-Compiler gebaut.

Lazarus einrichten

Lazarus auf deutsch

  • Lazarus mit dem neuen Desktop-Icon (Lazarus_fpcupdeluxe) starten.
  • "Tools --> Options --> General --> Language" Lazarus auf deutsch stellen, mit Ok bestätigen und Lazarus neu starten.

Lazarus sollte jetzt deutsch sein.

LAMW einrichten

  • "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"
    • "Path to Workspace" --> /home/tux/android_test
    • "Architekture/Instructions" --> ARMv7a+VFPv3
    • "Apk Builder: --> "Gradle

Ok drücken

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

Erster Start

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

Das erste Kompilieren geht recht lange, da noch vieles für den Crosscompiler übersetzt werden muss.

Project Einstellungen ändern

Nachträglich Build ändern:

  • Projekt --> Projekteinstellungen... --> [LAMW] Android Project Options --> Build