J'ai eu beaucoup de plaisir à comprendre celui-ci. Voici mon parcours.
Présentation de A à Z sur la façon de créer un fichier de génération Gradle dans IntelliJ (v.13.1.4) Cette procédure suppose que vous savez comment créer un fichier de clés. Pour que ce tutoriel fonctionne, vous aurez besoin que votre fichier de clés soit situé dans le dossier de votre application et vous aurez besoin que votre fichier zipalign.exe soit situé dans 'SDK-ROOT \ tools'. Ce fichier se trouve généralement dans «SDK-ROOT \ build-tools» et sous ce dossier, il se trouvera dans le dossier api le plus élevé (alpha ou beta, je recommande la version alpha).
Pour ceux d'entre vous qui souhaitent sauter directement, voici le fichier de construction gradle.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
signingConfigs {
playstore {
keyAlias 'developers4u'
keyPassword 'thisIsNotMyRealPassword'
storeFile file('developers4u.keystore')
storePassword 'realyItIsNot'
}
}
buildTypes {
assembleRelease {
debuggable false
jniDebugBuild false
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
zipAlign true
signingConfig signingConfigs.playstore
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:20.0.0'
implementation 'com.android.support:appcompat-v7:20.0.0'
}
Vous pouvez créer une partie de ce fichier de construction (ci-dessus) à partir de l'option de menu: Structure de fichier / projet À partir d'ici, sélectionnez Facettes et cliquez sur 'Android-Gradle (App). De là, vous verrez des onglets: 'Propriétés', 'Signature', 'Saveurs', 'Types de build' et 'Dépendances' pour cette procédure, nous utiliserons simplement 'Signature' et 'Types de build'. Sous `` Types de build '' (dans la section nom), entrez le nom que vous souhaitez identifier la configuration de votre type de build et dans les 4 autres champs entrez vos informations de magasin de clés (en définissant le chemin du magasin de clés celui sous le dossier de votre application).
Sous 'Build Types', entrez la valeur 'assembleRelease' dans le champ du nom, 'Debuggable' doit être défini sur false, 'Jni Debug Build' doit être faux, définissez 'Run Proguard' sur true et 'Zip Align' sur true. Cela générera un fichier de construction, mais pas comme illustré ci-dessus, vous devrez ajouter quelques éléments au fichier de construction par la suite. L'emplacement du fichier ProGuard ici sera défini manuellement dans le fichier de construction gradle. (comme illustré ci-dessus)
Les conteneurs DSL que vous devrez ajouter par la suite sont les suivants:
android {
....
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
....
}
Vous devrez également ajouter:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:20.0.0'
implementation 'com.android.support:appcompat-v7:20.0.0'
}
notez que ce conteneur DSL ci-dessus («dépendances») devrait être au bas du fichier de configuration mais pas à l'intérieur du conteneur DSL Android. Afin de construire le conteneur de dépendances à partir du menu IntelliJ, sélectionnez: Structure de fichier / projet. De là, sélectionnez à nouveau Facettes, puis Android-Gradle (application). Vous verrez les mêmes 5 onglets que ceux mentionnés ci-dessus. Sélectionnez l'onglet «Dépendances» et ajoutez les dépendances dont vous avez besoin.
Après tout cela, vous devriez voir un fichier de construction Gradle similaire au fichier en haut de cette procédure pas à pas. Pour créer votre version alignée avec zip, vous devrez ouvrir les tâches Gradle. Vous pouvez accéder à cette fenêtre en sélectionnant Affichage / Fenêtres d'outils / Gradle. De là, vous pouvez double-cliquer sur 'assemblerAssemblerRelease. Cela devrait générer votre APK déployable.
Les problèmes potentiels qui peuvent survenir lors de la compilation de votre version sont (mais sans s'y limiter): Votre fichier de génération Gradle est au mauvais endroit. Il existe deux fichiers de construction Gradle; un dans le dossier racine de votre application et un autre dans le dossier de l'application sous la racine de l'application. Vous devez utiliser ce dernier.
Vous pouvez également avoir des problèmes de peluches. (Remarque: Android Developer Studio est bien meilleur pour repérer les problèmes de Lint qu'IntelliJ, vous le remarquerez lorsque vous essayez de générer un APK signé à partir des options de menu)
Pour contourner les problèmes de peluches, vous devrez placer le conteneur DSL suivant dans le conteneur Android (en haut):
android {
....
lintOptions {
abortOnError false
}
....
}
mettre ceci dans votre conteneur DSL Android entraînera la génération d'un fichier d'erreur dans le dossier de construction (directement sous le dossier de votre application) le nom du fichier devrait être quelque chose comme 'lint-results-release-fatal.html' ce fichier vous indiquera le la classe où l'erreur s'est produite. Un autre fichier qui sera généré est un fichier XML qui contient l'ID de problème associé à l'erreur de peluches. Le nom du fichier doit être quelque chose comme 'lint-results-release-fatal.xml'. Quelque part vers le haut du fichier, vous verrez un problème de nœud à l'intérieur duquel vous verrez quelque chose de similaire à 'id = "IDOfYourLintProblem"'
Pour corriger ce problème, ouvrez le fichier de votre projet qui était répertorié dans le fichier 'lint-results-assembleRelease-fatal.html' et entrez la ligne de code suivante dans le fichier de classe Java juste au-dessus du nom de classe: @SuppressLint ("IDOfYourLintProblem "). Vous devrez peut-être importer 'android.annotation.SuppressLint;'
Votre fichier de classe java devrait donc apparaître comme:
package com.WarwickWestonWright.developers4u.app.CandidateArea;
import android.annotation.SuppressLint;
... other imports
@SuppressLint("IDOfYourLintProblem")
public class SearchForJobsFragment extends Fragment {... rest of your class definition}
Notez que la suppression des erreurs de peluches n'est pas toujours la meilleure idée, il vaut mieux changer votre code à l'origine des erreurs de peluches.
Un autre problème qui pourrait se produire est que vous n'avez pas défini la variable d'environnement pour la variable d'environnement Gradle HOME. Cette variable est nommée 'GRADLE_HOME' et doit être définie sur le chemin du répertoire personnel de gradle, quelque chose comme 'C: \ gradle-1.12' Parfois, vous pouvez également définir la variable d'environnement pour 'ANDROID_HOME', définissez-la sur 'YOUR- SDK-Root \ sdk '
Après cela, revenez à la fenêtre des tâches Gradle et double-cliquez sur l'assembleAssembleRelease.
Si tout réussit, vous devriez pouvoir aller dans le dossier app \ build \ apk et trouver votre fichier APK déployable.