――Je fais du développement Android avec Kotlin, mais cela devient difficile à construire avec Android Studio à chaque fois.
C'est un Mac de développement que j'ai eu récemment, donc je n'avais pas encore Docker orz Je n'écrirai rien ici, alors je vais l'omettre.
Cette fois, j'utiliserai openjdk8 La raison en est que c'est la valeur par défaut utilisée dans le modèle Android YAML de gitlabci, et cela vous évite d'avoir à installer des packages JAVA (même si je pense qu'il est utilisé).
Premier tirage comme d'habitude La spécification de version est requise
docker pull openjdk:8-jdk
Et démarrer le conteneur
docker run -it openjdk:8-jdk
Si vous faites ce qui précède, je pense qu'il sera automatiquement mis dans le conteneur, donc je vais installer le package
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
Je pense que c'est correct de vérifier s'il y a des erreurs sur la console et de vérifier les variables d'environnement avec printenv au cas où.
git clone Apportez le code source à construire dans le conteneur Ceci est juste un clone, alors omettez-le
La construction elle-même est facile, appuyez simplement sur la commande Gradle
./gradlew assemble
Si vous souhaitez utiliser des variantes et des saveurs, modifiez la commande J'ai fait référence à ici.
Cependant, si cela reste tel quel, une erreur se produira et cela ne fonctionnera pas. J'ai trébuché ici, alors je voudrais introduire deux points.
J'ai eu l'erreur suivante lors de la construction
「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」
Cela ressemble à une erreur du type "L'emplacement du SDK n'est pas écrit dans les propriétés locales"
J'ai cherché des propriétés locales comme on m'a dit mais je n'ai pas pu les trouver
Je n'étais pas au courant car il a été créé par moi-même (probablement) lors de l'utilisation d'Android Studio, mais il semble que je doive créer des propriétés locales et décrire l'emplacement du SDK.
Je n'ai pas mis vim en premier lieu, donc c'est à partir de là ^^;
apt-get install vim
Accédez au dossier supérieur de l'application
vi local.properties
Le contenu est comme ça
## 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
Maintenant, je frappe à nouveau la commande build, mais cette fois, j'obtiens une autre erreur
La prochaine erreur est 「Could not connect to kotlin daemon. Using fallback strategy.」 Contenu
Quand je l'ai recherché, il semble que Demon-chan est mort lorsque la mémoire a atteint la limite supérieure.
Cliquez sur la marque de baleine dans la barre d'état de votre Mac et modifiez les paramètres de l'application Docker pour augmenter la mémoire maximale. Pour plus de détails sur la manière de procéder, consultez ici.
Enfin le mot "BUILD SUCCESSFUL"!
Je crains qu'on ne m'ait pas demandé la signature lors de la construction, alors je l'ajouterai plus tard. Je pensais que c'était à cause du débogage, mais lors de la création avec Android Studio, je ne peux rien dire car Release et Debug doivent être signés.
Je n'ai pas créé de fichier docker cette fois La raison en est qu'il est répertorié dans gitlabci.yaml
la prochaine fois
--Construction automatique lors du commit depuis git labci --Construire avec des variantes et des saveurs
J'aimerais pouvoir faire un hit
c'est tout Merci pour votre relation
Recommended Posts