Когда я создаю свое приложение, я получаю следующую ошибку:
Ошибка: не удалось выполнить задачу ': app: transformResourcesWithMergeJavaResForDebug'. Найдено несколько файлов с независимым от ОС путем «META-INF / LICENSE»
Это мой файл 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'
}
Когда я добавляю этот код в мой файл 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'
}
Эта ошибка будет решена, но возникнет другая проблема. Как это:
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)
У кого есть идеи как это решить?
Ответы:
Вы можете добавить это
yourProject/app/build.gradle
внутриandroid{}
источник
В моем случае этого было достаточно, чтобы исключить только путь «META-INF / DEPENDENCIES»
yourProject/app/build.gradle
внутриandroid{}
. ВотА затем сделать Чистый проект и перестроить проект.
источник
Решения здесь не помогли мне, но эта ссылка сделала.
Если у вас есть библиотека, в которую добавляются некоторые файлы Android .so - как
libassmidi.so
илиlibgnustl_shared.so
- вы должны указать gradle, что при упаковке нужно выбрать только одну, иначе вы получите конфликт.У меня возникла эта проблема при использовании приложения React Native в качестве библиотеки в проекте Android. Надеюсь, поможет
источник
Было похожее сообщение
Чтобы решить эту проблему, мне пришлось включить просмотр пакетов ( 1 ) в Android Studio, затем просмотреть дерево в библиотеках и найти дубликаты ( 2 )
Затем, Ctrl + Alt + F12 (или меню RMB) ( 3 ) - и нашел библиотеки, которые вызвали проблему. Составил список файлов внутри этих библиотек, которые вызвали проблемы, и записал их в файл build.gradle приложения в разделе Android . Другой вариант - разобраться с библиотекой, содержащей дубликаты файлов.
источник
По сути, когда gradle собирает файл apk, он копирует содержимое из всех зависимостей компиляции. Он достаточно умен, чтобы увидеть, что есть дубликат файла ..coming из двух разных файлов jar. Это может быть любой файл, такой как .txt или META-INF / DEPENDENCIES. Возможно, было бы лучше исключить эти файлы, используя приведенные ниже, если файл присутствует там только в ознакомительных целях.
Или, если в этом случае файл является обязательным файлом, таким как файл класса, который был продублирован по двум зависимостям jar, которые связаны друг с другом, лучше найти альтернативы этим jar-файлам в виде более совместимой версии.
источник
У меня была такая же проблема, и я попробовал это
Решение: все, что вам нужно сделать, чтобы это исправить, это добавить его в раздел android {} в build.gradle вашего приложения.
источник
Это происходит при использовании
org.jetbrains.kotlinx: kotlinx-сопрограмма-ядро: 1.2.0
И исправлено в следующей версии
org.jetbrains.kotlinx: kotlinx-сопрограмма-ядро: 1.2.1
источник
Я столкнулся с одной и той же ошибкой и обнаружил, что она возникла из-за того, что разные модули содержали одни и те же классы из разных пакетов .
Например, один использованный пакет androidx, а другой использованный до androidx
Я решил эту проблему, перенеся модуль pre-androidx на androidx, используя встроенную функцию Android Studio: «Refactor -> Migrate to Androidx ...», не исключая ничего.
В вашей ситуации вы можете проверить наличие несоответствий между модулями.
источник
Я прочитал все ответы, связанные с получением этого сообщения
Android Studio
:но в этом случае исключение классов не является необходимым, нам нужно только исключить
'META-INF/DEPENDENCIES'
, это можно сделать внутри/app/build.gradle
:источник
Я обновил Studio с Java 7 до Java 8, и эта проблема возникла. Тогда я решил это так:
источник
В моем приложении я добавляю зависимости jar следующим образом:
Но я понял, что они уже были добавлены из-за следующей первой строки в зависимостях:
Эта строка добавляет все фляги в папке lib к зависимости приложения.
Следовательно, после удаления дополнительной зависимости
implementation files('libs/json-simple-1.1.1.jar')
это работает нормально.
источник
Я столкнулся с аналогичной проблемой, работая в среде приложений с несколькими модулями:
Эта проблема была обнаружена несколькими моими модулями, и ни одно из вышеуказанных решений ее не исправляло. Оказывается, я использовал версию Coroutines 1.3.6, которая, казалось, встраивала META-INF / AL2.0, которая уже была встроена другой из библиотек, которые я использовал. Чтобы это исправить, я добавил следующий фрагмент кода в build.gradle модуля, который не работал:
Учитывая, что это происходило в нескольких модулях, я переместил этот
resolutionStrategy
код на мой уровень проекта build.gradle. После этого все заработало.источник
У меня та же проблема, и я попробовал это
Ошибка: найдено более одного файла с независимым от ОС путем «META-INF / library_release.kotlin_module»
Решение:
источник
У меня была похожая проблема. я получаю сообщение об ошибке -
Как указано в некоторых ответах выше, использование приведенного ниже кода работает
Но я получал эту ошибку для 20 разных файлов, поэтому после исключения 20 файлов я остановился и попытался найти достойное решение. Я также столкнулся с
Мне наконец удалось решить это.
Во-первых (как в моем случае WillCloseWhenClosed.java был дубликатом файла), в андроид-студии у вас есть возможность «искать везде». Написать и найти файл там. Там я нашел несколько экземпляров этого файла. Поэтому я нажал на оба экземпляра и увидел их местоположение, щелкнув правой кнопкой мыши по файлу и увидев его местоположение, когда они открывались в Android Studio.
Во-вторых, я понял, что у меня есть некоторые зависимости в файле Gradle. Я использовал приведенный ниже код
а также у меня были такие же zip-пакеты в папке: \ Users \ user \ AndroidStudioProjects \ git \ appname \ app \ libs \ google-http-client-1.23 !.
Так что это было излишним, и поэтому gradle находит 2 файла. Таким образом, я удалил свои пакеты почтового индекса, и это решило ошибки для меня. Будьте осторожны при этом. Вы должны выяснить, какой файл или пакет является правильным для удаления.
В-третьих, gradle также создает zip из этих файлов ошибок в этом месте (по крайней мере, для меня это было сделано) - C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ google \ code \ findbugs \ jsr305 \ 1.3. 9 \ jsr305-1.3.9.jar!
поэтому я пошел и удалил файл jsr305-1.3.9.jar отсюда также.
Если вы все еще в замешательстве, просто воспользуйтесь поиском везде в Android Studio, найдите там экземпляры вашего файла и вам придется удалить один из них. Не торопитесь и выясните, какой.
источник
Добавление
android.useAndroidX = TRUE
android.enableJetifier = TRUE
чтобы gradle.properties работал для меня.
источник
Я столкнулся с этой проблемой, сначала с некоторыми нативными библиотеками (.so файлами), а затем с файлами java / kotlin. Оказалось, что я включал библиотеку из источника, а также ссылался на артефакт через транзитивную зависимость. Проверьте ваше дерево зависимостей, чтобы увидеть, есть ли какие-либо избыточные записи. Используйте
./gradlew :app:dependencies
для получения дерева зависимостей. Замените «app» на имя вашего модуля, если имя основного модуля отличается.источник
Попробуйте изменить минимальную версию Android> = 21 в вашем build.gradle android {}
источник
Добавить следующее в файл уровня приложения уровня внутри Android {}
источник
Попробуйте удалить multidex из конфигурации по умолчанию и проверьте журнал ошибок сборки. Если этот журнал может быть связан с классом INotification. Используйте это в Android {}
Это помогает мне.
источник
Для меня ниже решение работало, вы тоже можете получить помощь, я написал ниже строку в файле Gradle приложения
источник
Я был подключен, но мой проект уже был перенесен на AndroidX, но после повторной миграции на androidX он изменил часть моего проекта, и проблема была решена.
источник
Добавьте приведенный ниже код в app.gradle, это решит все ошибки зависимости библиотеки
источник
для меня это был .md, а не .txt
источник
Во многих ответах на SO по этой проблеме было предложено добавить
exclude 'META-INF/DEPENDENCIES'
и некоторые другие исключения. Однако ни один из них не работал для меня. В моем случае сценарий был такой:Я добавил это в зависимости:
А также я добавил это в gradle.properties:
Оба из них я добавил, потому что я получал ошибку сборки «не могу найти класс символов Nullable», и это было предложено в качестве решения этой проблемы на некоторых из ответов, как здесь
Однако, в конце концов я попал в ошибку:
Нет
exclude
работал на меня. Наконец, я просто удалил эти добавленные строки просто из подозрения (Решено 'не может найти класс символов Nullable' каким-то альтернативным способом) и, наконец, я избавился от этой ошибки "Более одного файла было найдено с ОС ...". Я потратил впустую свои часы. Но в конце концов избавился от этого.источник
Вам просто нужно сделать Invalidate Cache & Restart , после этого Clean Project
источник