Il y a quelques jours, j'ai mis à niveau mon Android Studio et je suis maintenant confronté à un problème.
En fait, j'essaie de créer un fichier APK à partir de mon projet pour tester mon application sur un périphérique réel. Lorsque je clique sur Construire -> Construire Apk , je reçois quelques erreurs dans Message Gradle Build. Je ne sais pas pourquoi ces erreurs arrivent, veuillez expliquer la raison également.
Les erreurs
Erreur: Erreur lors de la conversion du bytecode en dex:
Cause: com.Android.dex.DexException: plusieurs fichiers dex définissent Lcom/Android/volley/VolleyError;
Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithDexForDebug'. com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException: org .gradle.process.internal.ExecException: La commande de processus 'C:\Program Files\Java\jdk1.8.0_51\bin\Java.exe' 'est terminée avec une valeur de sortie non nulle 2
Fichier build.gradle
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// Volley
compile 'com.Android.volley:volley:1.0.0'
//compile 'com.mcxiaoke.volley:library:1.0.+'
/* compile files('libs/com.mcxiaoke.volley library-1.0.0.jar')*/
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
// A simple way to define and render UI specs on top of your Android UI.
compile 'org.lucasr.dspec:dspec:0.1.1'
compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
// GOSN
/* compile files('libs/gson-2.2.3.jar')*/
}
Modifier - 1
Comme le disait janki gadhiya dans son commentaire ci-dessous, changer minifyEnabled true
et essayer d'ajouter multiDexEnabled true
sous defaultConfig
avec ces modifications, les deux erreurs ci-dessus ont disparu, mais cette erreur suivante est à venir.
fichier build.gradle
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt')
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// as you already compiled gradle for volley here
compile 'com.Android.volley:volley:1.0.0'
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
compile 'org.lucasr.dspec:dspec:0.1.1'
// you don't need this so comment the below line.
//compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
}
Edit: Explications
Vos erreurs 1 - 2 : signifient que vous avez plus de 65 000 méthodes dans votre projet, je vous ai donc recommandé de définir multiDexEnable true
.
Votre erreur 3 : signifie que plusieurs bibliothèques ont l'implémentation de la classe Request$Priority.class
, le compilateur ne sait donc pas lequel choisir. Donc, il montre le erreur entrée en double . Ceci sera résolu par packaging options
, cela vous permettra d'utiliser des fichiers en double.
Ajoutez ceci dans votre niveau de construction
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
Je reçois aussi la même erreur. Lors de l'ajout du compiler "com.google.firebase: firebase-ads: 10.2.0"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
compile 'com.google.firebase:firebase-ads:10.2.0'
}
apply plugin: 'com.google.gms.google-services'**
et dans BuildVarient, utilisez le mode débogage .
Je pense que cela vous aidera.
lors de la mise à jour de Firebase, utilisez un des services Google Play, puis essayez de mettre à jour toutes les bibliothèques. cela a fonctionné pour moi. espérons que cela fonctionne dans certains cas.