Lorsque je crée mon application, j'obtiens l'erreur suivante:
Erreur: l'exécution a échoué pour la tâche ': app: transformResourcesWithMergeJavaResForDebug'. Plusieurs fichiers ont été trouvés avec le chemin indépendant du système d'exploitation «META-INF / LICENSE»
Voici mon fichier build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "cn.sz.cyrus.kotlintest"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions{
annotationProcessorOptions{
includeCompileClasspath = true
}
}
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
/* exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'*/
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
compile 'com.github.GrenderG:Toasty:1.2.5'
compile 'com.orhanobut:logger:1.15'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.umeng.analytics:analytics:latest.integration'
compile 'ai.api:libai:1.4.8'
compile 'ai.api:sdk:2.0.5@aar'
// api.ai SDK dependencies
compile 'com.google.code.gson:gson:2.8.0'
compile 'commons-io:commons-io:2.4'
compile 'com.android.support:multidex:1.0.1'
}
Lorsque j'ajoute ce code à mon fichier build.gradle,
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Cette erreur serait résolue, mais un autre problème se produira. Comme ça:
java.lang.NoClassDefFoundError: com.squareup.leakcanary.internal.HeapAnalyzerService
at com.squareup.leakcanary.LeakCanary.isInAnalyzerProcess(LeakCanary.java:145)
at cn.sz.cyrus.wemz.TestApplication.onCreate(TestApplication.kt:32)
Qui a des idées pour résoudre ce problème?
android
gradle
build.gradle
Cyrus
la source
la source
Réponses:
Vous pouvez l'ajouter à l'
yourProject/app/build.gradle
intérieurandroid{}
la source
Dans mon cas, il suffisait d'exclure uniquement le chemin 'META-INF / DEPENDENCIES' à l'
yourProject/app/build.gradle
intérieurandroid{}
. C'est iciEt puis faites Clean Project et Rebuild Project.
la source
Les solutions ici ne m'ont pas aidé, mais ce lien l'a fait.
Si vous avez une bibliothèque qui ajoute des fichiers Android .so - comme
libassmidi.so
oulibgnustl_shared.so
- vous devez dire à gradle de n'en choisir qu'un lors de l'empaquetage, sinon vous obtiendrez le conflit.J'avais ce problème lors de l'utilisation d'une application React Native en tant que bibliothèque dans un projet Android. J'espère que ça aide
la source
Avait un message similaire
Pour le résoudre, j'ai dû activer la vue des packages ( 1 ) dans Android Studio, puis parcourir l'arborescence jusqu'aux bibliothèques et localiser les doublons ( 2 )
Ensuite, ctrl + alt + f12 (ou menu RMB) ( 3 ) - et trouvé les bibliothèques à l'origine du problème. Faire la liste des fichiers à l'intérieur de ces bibliothèques qui ont causé les problèmes et les écrire dans le fichier build.gradle de l'application dans la section Android . Une autre option consiste à gérer la bibliothèque contenant des fichiers en double
la source
Fondamentalement, lorsque gradle rassemble le fichier apk, il copie le contenu de toutes les dépendances de compilation, il est assez intelligent pour voir qu'il y a un fichier en double ... provenant de deux fichiers jar différents. Il peut s'agir de n'importe quel fichier comme a.txt ou META-INF / DEPENDENCIES. Il peut être préférable d'exclure ces fichiers à l'aide de ce qui suit, au cas où le fichier ne s'y trouve qu'à des fins d'information.
Ou si, dans le cas, le fichier est un fichier obligatoire comme un fichier de classe, qui a été dupliqué sur deux dépendances de jar liées entre elles, il est préférable de trouver des alternatives à ces jars, à la manière d'une version plus compatible.
la source
J'avais le même problème et j'ai essayé
Solution: tout ce que vous avez à faire pour résoudre ce problème consiste à l'ajouter à la section Android {} dans le "build.gradle" de votre application.
la source
Cela se produit lors de l'utilisation
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.0
Et est corrigé dans la prochaine version
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.1
la source
J'ai rencontré la même erreur, et j'ai trouvé qu'elle résultait de différents modules contenant les mêmes classes de différents packages .
Par exemple, un package androidx utilisé et l'autre pré-androidx utilisé
Je l'ai résolu en migrant le module pré-androidx vers androidx en utilisant la fonction intégrée d'Android Studio: "Refactor -> Migrer vers Androidx ..." sans rien exclure.
Pour votre situation, vous pouvez vérifier si vous avez des incompatibilités de dépendance entre les modules.
la source
J'ai lu toutes les réponses liées à la réception de ce message
Android Studio
:mais dans ce cas, l'exclusion des classes n'est pas nécessaire, il suffit d'exclure
'META-INF/DEPENDENCIES'
, cela peut être fait à l'intérieur de/app/build.gradle
:la source
J'ai mis à jour Studio de Java 7 vers Java 8 et ce problème s'est produit. Ensuite, je l'ai résolu de cette façon:
la source
Dans mon application, j'ajoutais les dépendances du pot comme ceci:
Mais j'ai réalisé qu'ils ont déjà été ajoutés en raison de la première ligne suivante dans les dépendances:
Cette ligne ajoute tous les fichiers jars du dossier lib à la dépendance de l'application.
Par conséquent, après avoir supprimé la dépendance supplémentaire
implementation files('libs/json-simple-1.1.1.jar')
ça marche bien.
la source
J'ai rencontré un problème similaire en travaillant dans un environnement d'application à plusieurs modules:
Ce problème était signalé par plusieurs de mes modules et aucune des solutions ci-dessus ne le résolvait. Il s'avère que j'utilisais la version Coroutines 1.3.6 qui semblait incorporer META-INF / AL2.0 qui était déjà incorporée par une autre des bibliothèques que j'utilisais. Pour le corriger, j'ai ajouté l'extrait de code suivant au build.gradle du module qui échouait:
Étant donné que cela se produisait sur plusieurs modules, j'ai déplacé ce
resolutionStrategy
code dans mon build.gradle au niveau du projet. Tout a fonctionné après cela.la source
J'ai le même problème et j'ai essayé
Erreur: fichiers ont été trouvés avec le chemin indépendant du système d'exploitation «META-INF / library_release.kotlin_module»
Solution:
la source
J'avais un problème similaire. je recevais le message d'erreur -
Comme indiqué dans certaines des réponses ci-dessus, l'utilisation du code ci-dessous fonctionne
Mais j'obtenais cette erreur pour 20 fichiers différents, donc après avoir exclu 20 fichiers, je me suis arrêté et j'ai essayé de trouver une solution décente. J'avais également rencontré le
J'ai finalement réussi à résoudre ce problème.
Tout d'abord (comme dans mon cas WillCloseWhenClosed.java était le fichier en double), dans Android Studio, vous avez la possibilité de `` rechercher partout ''. Écrivez-y et recherchez le fichier. Là, j'ai trouvé plusieurs instances de ce fichier. J'ai donc cliqué sur les deux instances et vu leur emplacement en cliquant avec le bouton droit sur le fichier et en voyant son emplacement lors de leur ouverture dans Android Studio.
Deuxièmement, j'ai compris que j'avais des dépendances dans le fichier gradle. J'utilisais le code ci-dessous
et j'ai également eu leurs mêmes packages zip à l'emplacement: \ Users \ user \ AndroidStudioProjects \ git \ appname \ app \ libs \ google-http-client-1.23 !.
C'était donc redondant et c'est pourquoi gradle trouve 2 fichiers. J'ai donc supprimé mes packages zip et cela a résolu les erreurs pour moi. Soyez prudent en faisant cela. Vous devez déterminer quel est le bon fichier ou package à supprimer.
Troisièmement, gradle crée également un zip de ces fichiers de bogues à cet emplacement (au moins pour moi, il a été créé) - C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ google \ code \ findbugs \ jsr305 \ 1.3. 9 \ jsr305-1.3.9.jar!
donc je suis allé et j'ai supprimé le fichier jsr305-1.3.9.jar d'ici aussi.
Si vous êtes toujours confus, lancez simplement la `` recherche partout '' dans Android Studio, trouvez des instances de votre fichier et vous devrez supprimer l'un d'entre eux. Prenez votre temps et déterminez lequel.
la source
Ajouter
android.useAndroidX = true
android.enableJetifier = true
to gradle.properties a fonctionné pour moi.
la source
J'ai rencontré ce problème, d'abord avec certaines bibliothèques natives (fichiers .so) puis avec des fichiers java / kotlin. Il s'est avéré que j'incluais une bibliothèque à partir de la source ainsi que le référencement artificiel via une dépendance transitive. Vérifiez votre arbre de dépendance pour voir s'il existe des entrées redondantes. Utilisez
./gradlew :app:dependencies
pour obtenir l'arborescence des dépendances. Remplacez «app» par le nom de votre module si le nom du module principal est différent.la source
Essayez de changer la version minimale d'Android> = 21 dans votre build.gradle android {}
la source
Ajouter le fichier gradel suivant au niveau de l'application dans Android {}
la source
Essayez de supprimer multidex de la configuration par défaut et consultez le journal des erreurs de génération. Si ce journal est en relation avec la classe INotification. Utilisez-le dans Android {}
Cela m'aide.
la source
Pour moi, la solution ci-dessous a fonctionné, vous pouvez également obtenir de l'aide, j'ai écrit la ligne ci-dessous dans le fichier gradle de l'application
la source
J'étais câblé, mais mon projet était déjà migré vers AndroidX, mais après une nouvelle migration vers androidX, il a refactorisé une partie de mon projet et le problème a été résolu.
la source
Ajoutez le code ci-dessous dans app.gradle, cela résoudra toutes les erreurs de dépendance de la bibliothèque
la source
pour moi, c'était .md plutôt que .txt
la source
Dans de nombreuses réponses sur SO à ce problème, il a été suggéré d'ajouter
exclude 'META-INF/DEPENDENCIES'
et certains autres exclut. Cependant, aucun de ces éléments n'a fonctionné pour moi. Dans mon cas, le scénario était comme ceci:J'avais ajouté cela dans les dépendances:
Et aussi je l'avais ajouté dans gradle.properties:
J'avais ajouté les deux, car j'obtenais une erreur de construction «ne peut pas trouver la classe de symboles Nullable» et il a été suggéré comme solution à cela sur certaines des réponses comme ici
Cependant, j'ai finalement atterri en obtenant une erreur:
Non
exclude
travaillait pour moi. Enfin, je viens de supprimer les lignes ajoutées ci-dessus juste par suspicion (Résolu 'ne peut pas trouver la classe de symboles Nullable' d'une manière alternative) et enfin je me suis débarrassé de l'erreur de construction "Plus d'un fichier a été trouvé avec OS ...". J'ai perdu des heures. Mais finalement je m'en suis débarrassé.la source
Vous avez juste besoin d' invalider le cache et redémarrer , après ce projet propre
la source