Erstellen Sie eine Kotlin-App mit dem OpenJDK Docker-Container

Hintergrund

――Ich mache Android-Entwicklung mit Kotlin, aber es wird jedes Mal schwierig, mit Android Studio zu bauen.

Docker-Installation

Es ist ein Entwicklungs-Mac, den ich kürzlich bekommen habe, also hatte ich Docker noch nicht oder Ich werde hier nichts schreiben, also werde ich es weglassen.

Bis der Container startet

Dieses Mal werde ich openjdk8 verwenden Der Grund dafür ist, dass dies die Standardeinstellung ist, die in der Android-Vorlage YAML von gitlabci verwendet wird.

Zuerst wie gewohnt ziehen Versionsspezifikation ist erforderlich

docker pull openjdk:8-jdk

Und starten Sie den Container

docker run -it openjdk:8-jdk

Erforderliche Paketinstallation

Wenn Sie das oben genannte tun, denke ich, dass es automatisch in den Container gelegt wird, also werde ich das Paket installieren

apt-get --quiet update --yes
apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1

export ANDROID_COMPILE_SDK=28
export ANDROID_BUILD_TOOLS=29.0.3
export ANDROID_SDK_TOOLS=6514223
export ANDROID_HOME="/android-home"

install -d $ANDROID_HOME
wget --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip

pushd $ANDROID_HOME
unzip -d cmdline-tools cmdline-tools.zip
popd
export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/tools/bin/

sdkmanager --version

yes | sdkmanager --sdk_root=${ANDROID_HOME} --licenses || true
sdkmanager --sdk_root=${ANDROID_HOME} "platforms;android-${ANDROID_COMPILE_SDK}"
sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools"
sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;${ANDROID_BUILD_TOOLS}"

chmod +x ./gradlew

Ich denke, es ist in Ordnung zu überprüfen, ob es Fehler auf der Konsole gibt und die Umgebungsvariablen mit printenv für alle Fälle zu überprüfen.

git clone Bringen Sie den Quellcode in den Container Dies ist nur ein Klon, also lass es weg

Build-Ausführung

Der Build selbst ist einfach, drücken Sie einfach den Gradle-Befehl

./gradlew assemble

Wenn Sie Varianten und Geschmacksrichtungen verwenden möchten, ändern Sie den Befehl Ich habe auf [hier] verwiesen (https://techblog.zozo.com/entry/build_variants).

Wenn dies jedoch unverändert bleibt, tritt ein Fehler auf und es funktioniert nicht. Ich bin hier gestolpert, deshalb möchte ich zwei Punkte einführen.

Erstellen Sie local.properties

Beim Erstellen wurde der folgende Fehler angezeigt

「SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file at」

Es sieht aus wie ein Fehler wie "Der Speicherort des SDK ist nicht in lokalen Eigenschaften geschrieben".

Ich suchte nach lokalen Immobilien, wie mir gesagt wurde, konnte sie aber nicht finden

Ich war mir dessen nicht bewusst, da es (wahrscheinlich) von mir selbst erstellt wurde, als ich Android Studio verwendete, aber es scheint, dass ich lokale Eigenschaften erstellen und den Speicherort des SDK beschreiben muss.

Ich habe vim überhaupt nicht gesetzt, also ist es von dort ^^;

apt-get install vim

Gehen Sie zum obersten Ordner der App

vi local.properties

Der Inhalt ist so

## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Wed Jan 07 15:34:05 JST 2015
sdk.dir=/android-home

Jetzt drücke ich erneut auf den Build-Befehl, aber diesmal erhalte ich einen weiteren Fehler

Speicherobergrenze freigegeben

Der nächste Fehler ist 「Could not connect to kotlin daemon. Using fallback strategy.」 Inhalt

Als ich es nachgeschlagen habe, scheint es, dass Demon-chan gestorben ist, als die Erinnerung die Obergrenze erreicht hat.

Klicken Sie in der Statusleiste Ihres Mac auf die Walmarke und ändern Sie die Einstellungen in der Docker-App, um den maximalen Speicherplatz zu erhöhen. Einzelheiten dazu finden Sie unter hier.

Erfolgreich bauen! !!

Endlich das Wort "ERFOLGREICH BAUEN"!

Ich mache mir Sorgen, dass ich beim Bauen nicht nach der Unterschrift gefragt wurde, also werde ich das später hinzufügen. Ich dachte, es lag am Debug, aber beim Erstellen mit Android Studio kann ich nichts sagen, da sowohl Release als auch Debug signiert werden müssen.

Diesmal habe ich keine Docker-Datei erstellt Der Grund ist, dass es in gitlabci.yaml aufgeführt ist

nächstes Mal

--Automatischer Build bei Commit von Git Labci

Ich wünschte, ich könnte einen Treffer machen

das ist alles Vielen Dank für Ihre Beziehung

Recommended Posts

Erstellen Sie eine Kotlin-App mit dem OpenJDK Docker-Container
Erstellen Sie in Eile ein Maven-Projekt mit dem Docker-Container von Maven
Erstellen Sie einen Container für Docker x Laravel phpMyAdmin
Erstellen Sie einen Docker-Container für einen einfachen Python-Webserver
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Docker-Build für mehrere Projekte mit Fock
Erstellen Sie einen Container, der den Docker x Laravel-Code automatisch formatiert
Versuchen Sie Hello World mit einfachem Java im Docker-Container
Erstellen Sie mit Docker eine Node.js-Umgebung
Führen Sie PureScript auf einem Docker-Container aus
So erstellen Sie CloudStack mit Docker
Erstellen Sie eine Browsertestumgebung mit Capybara in der Docker-Entwicklungsumgebung
Erstellen Sie mit Docker schnell eine Webumgebung
Erstellen Sie eine WAS-Ausführungsumgebung aus Docker
Erstellen Sie mit Docker einen Authentifizierungs-Proxyserver
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Ich habe eine Janken App mit Kotlin gemacht
Docker Container Build kann PHP-Radis nicht installieren
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Mac-Version).
Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
Bis zum Start eines Docker-Containers, der mit RedHat Quarkus erstellt wurde
Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen eines Testflusses auf CircleCI mit Jib
So erhalten Sie einen Heapdump aus einem Docker-Container
Erstellen einer CICD-Pipeline mit Docker (persönliches Memorandum)
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Mit ShiftJIS in Datei schreiben ・ Datei lesen (Kotlin / JVM)
Ich habe einen Docker-Container erstellt, um Maven auszuführen
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Versuchen Sie, einen anderen Servlet-Container-Steg mit Docker zu verwenden
Für Docker Container Pull ist ein Ratenlimit festgelegt
SSH-Verbindung mit SSHJ aus der Java6-App
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
[Docker] Wie man mit einem Container in Heroku aktualisiert und wie man mit Migrate Error umgeht
Kleiner Docker Container
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
[Road_node.js_1-1] Der Weg zum Erstellen der Node.js Express MySQL-Umgebung mit Docker
So erstellen Sie die Docker + Springboot-App (für grundlegendes Lernen)
Üben Sie das Erstellen einer einfachen Chat-App mit Docker + Sinatra
Erstellen Sie eine Chat-App mit WebSocket (Tyrus) + libGDX + Kotlin