J'utilise Android Studio pour la première fois et j'ai eu l'erreur suivante après l'importation du projet (auparavant, c'était un projet Eclipse dans lequel j'avais également des problèmes.)
Voici les informations données:
Error:Execution failed for task ':app:dexDebug'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
at com.Android.dx.command.dexer.Main.run(Main.Java:246)
at com.Android.dx.command.dexer.Main.main(Main.Java:215)
at com.Android.dx.command.Main.main(Main.Java:106)
:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
at com.Android.dx.command.dexer.Main.run(Main.Java:246)
at com.Android.dx.command.dexer.Main.main(Main.Java:215)
at com.Android.dx.command.Main.main(Main.Java:106)
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
at com.Android.dx.command.dexer.Main.run(Main.Java:246)
at com.Android.dx.command.dexer.Main.main(Main.Java:215)
at com.Android.dx.command.Main.main(Main.Java:106)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
L'application build.gradle est la suivante:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.myapp.test"
minSdkVersion 11
targetSdkVersion 14
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.Android.support:support-v4:18.0.0'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile 'com.google.Android.gms:play-services:+'
compile files('libs/google-play-services.jar')
compile files('libs/httpcore-4.3.2.jar')
compile files('libs/httpmime-4.3.4.jar')
}
Et le projet build.gradle est le suivant:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
Avez-vous une idée du problème et de la manière de le résoudre? Une bonne explication du problème serait également utile car je suis nouveau sur Android Studio. Merci d'avance :)
compile 'com.google.Android.gms:play-services:+'
compile files('libs/google-play-services.jar')
Je pense que vous devriez supprimer une de ces lignes.
cd Android/&& ./gradlew clean && cd .. && react-native run-Android
J'ai eu l'erreur Android Studio: L'exécution a échoué pour la tâche ': app: dexDebug' que j'ai résolue en définissant multiDexEnabled sur true
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
Trop de bibliothèques ont été utilisées dans mon projet, je dépasse donc la limite de 65 000 méthodes imposée par Android pour plus d'informations, voir: http://developer.Android.com/tools/building/multidex.html
évitez d'inclure la bibliothèque entière gms:compile 'com.google.Android.gms:play-services:+'
À la place, utilisez simplement les composants requis de cette manière:
compile 'com.google.Android.gms:play-services-ads:8.3.0'
compile 'com.google.Android.gms:play-services-analytics:8.3.0'
compile 'com.google.Android.gms:play-services-gcm:8.3.0'
Cela est dû au fait que vous dupliquez la dépendance de la bibliothèque à l'intérieur de l'application build.gradle dans Android studio.
Android Studio ajoute automatiquement les dépendances de tous les fichiers du dossier libs en utilisant
compile fileTree(dir: 'libs', include: ['*.jar'])
ou dans votre cas spécifique, la dépendance est ajoutée en utilisant
compile files('libs/google-play-services.jar')
^ Maintenant, lorsque vous essayez d’ajouter de nouveau la dépendance en utilisant
compile 'com.google.Android.gms:play-services:+'
vous obtenez l'erreur.
SOLUTION
Supprimez toutes les dépendances en double ajoutées dans "app build.gradle" et vous devriez pouvoir continuer. Dans votre cas, supprimez
compile 'com.google.Android.gms:play-services:+'
Dans @Drivers 'answer , il est indiqué que dans un projet donné, il ne devrait pas exister de dépendances multiples ayant le même espace de noms. Dans le cas ci-dessus, la bibliothèque Google Play Services a été incluse deux fois et a donc provoqué un conflit de nom de package.
La même chose peut également se produire à travers plusieurs modules (applications, bibliothèques, etc.) dans le même projet. Donc, assurez-vous que pour chaque fichier AndroidManifest.xml
, le nom package
est unique dans tous les modules: -
AndroidManifest.xml:
<manifest
xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="this.must.be.unique.across.modules">
J'ai eu le code ci-dessous sur le fichier Gradle et même erreur.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.0'
compile 'com.google.Android.gms:play-services-ads:8.3.0'
}
dependencies {
compile 'com.Android.support:design:23.+'
}
dependencies {
compile 'com.Android.support:design:23.+'
}
dependencies {
compile 'com.Android.support:design:23.+'
}
Supprimé ces 3 dernières dépendances et maintenant, il fonctionne!