Android Studio 0.4 Дублирующие файлы, скопированные в APK META-INF / LICENSE.txt

После того, как я обновил свою Studio от 0,37 до 0,4, я не могу скомпилировать свой проект. Я нашел решение в stackoverflow: дублированные файлы, скопированные (Android Studio 0.4.0)

Я обновил свой проект до 0,7. +, Но я не знаю, где я должен поместить следующие строки:

android { packagingOptions { exclude 'META-INF/LICENSE.txt' } } 

Мой logcat: журнал

 Execution failed for task ':Prog:packageDebug'. > Duplicate files copied in APK META-INF/LICENSE.txt File 1: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar File 2: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar 

PS Разработка в ubuntu 13.04

Помещение зависимостей вверху и packageOptions в конце работало для меня.

 apply plugin: 'android'. 

Вот мой полный build.gradle в папке приложения.

 dependencies { compile 'com.android.support:support-v4:+' compile files('libs/apache-mime4j-0.6.jar') compile files('libs/httpmime-4.0.jar') } android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 7 targetSdkVersion 10 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.txt' } 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' } } 

EDIT: почти вся лицензия на ОС включает обязательство «включить копию лицензии» в ваш проект. Таким образом, это означает, что вы должны включить копию всех лицензий ОС, которые вы используете в своих проектах. «Исключая» их в gradleиенте, вы нарушаете лицензии.

Исключение из проекта может быть не лучшим вариантом. Спасибо RS за информацию.

Внимание!! Возможное нарушение лицензии OpenSource.

При исключении файлов license.txt, как было предложено выше, вы можете нарушить некоторые лицензии с открытым исходным кодом, поскольку в лицензиях с открытым исходным кодом общая точка доступа соглашается добавить его в ваш источник. Лучше проверьте свои лицензии с открытым исходным кодом.

Обновление: пока не будет лучшего решения, используйте

 packagingOptions { pickFirst 'META-INF/license.txt' } 

например, вы, по крайней мере, выполняете часть лицензионного обязательства

просто добавь

 android { packagingOptions { exclude 'META-INF/LICENSE.txt' } } 

в build.gradle

Вы можете исправить это, добавив следующий код в project/app/build.gradle :

 android { // Fixed build error : Duplicate files copied in APK META-INF/xxx packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/LICENSE.txt' } } 

Я столкнулся с той же проблемой, что и в новой версии gradle, для меня:

В моей папке libs есть два барабана Jackson.

 android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.omtlab.myapplication" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'libs/jackson-core-asl-1.9.13.jar' exclude 'libs/jackson-mapper-asl-1.9.13.jar' exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } } dependencies { //compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:21.0.3' compile files('libs/jackson-core-asl-1.9.13.jar') compile files('libs/jackson-mapper-asl-1.9.13.jar') } 

Добавление:

 packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' } 

работал для меня, решение biniam_Ethiopia, вероятно, является наиболее отказоустойчивым

Вставляя этот код

 android{ packagingOptions{ exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' } } 

УБЕДИТЕСЬ, если по ошибке он показывает

> Дублирующие файлы, скопированные в APK META-INF / LICENSE.txt

затем добавьте

  android{ packagingOptions{ exclude 'META-INF/LICENSE.txt' } } 

если по ошибке он показывает

> Повторяющиеся файлы, скопированные в APK META-INF / LICENSE

затем добавьте

  android{ packagingOptions{ exclude 'META-INF/LICENSE' } } 

если по ошибке он показывает

> Повторяющиеся файлы, скопированные в APK META-INF / license.txt

затем добавьте

  android{ packagingOptions{ exclude 'META-INF/license.txt' } } 

Вкратце текст CASE и документ FORMAT (.txt) так важен.

(эта ошибка существует и в Android Studio 1.1.0)

Это поможет вам решить проблему

 packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/DEPENDENCIES' } 

Я просто добавляю 2:

 android{ packagingOptions{ exclude 'META-INF/LICENSE.txt' exclude 'META-INF/LICENSE' } } 
 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' } 

Добавить в файл build.gradle и syn project

У меня была аналогичная ошибка, и я решил ее без функции packingOptions() и exclude . Я добавлял две зависимости, но одна из них была подгруппой первой. Это вызвало ошибку, как только я удалил один из них, я получил чистую сборку. Я рекомендую проверить аналогичную ошибку в вашем блоке зависимостей.

При использовании java-jwt и java-jwt jackson-core вместе используйте следующее:

 exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.xml") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.xml") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.xml") 

Это может быть плохой практикой, однако, если вы включаете несколько больших библиотек, вы можете столкнуться сотнями таких конфликтов.

Ниже перечислены супер-простые исправления для таких случаев:

 android { .... packagingOptions { // Allow the compilation process to choose the dependencies for us. pickFirst "**" } } 
  • Android Studio: Android Manifest не существует или имеет неправильный корневой тег
  • Создание с помощью каталога Intellij 2017.2 / out дублирует файлы в каталоге / build
  • Невозможно разрешить символ «Тема» в styles.xml (Android Studio)
  • Android-Studio обновлен с 0.1.9 до 0.2.0, вызывая ошибки построения gradleиента
  • Ошибка сборки тестов для Android: несколько файлов dex определяют Landroid / support / test / BuildConfig
  • Лучший способ включить Volley (или другую библиотеку) в проект Android Studio
  • Android Gradle Не удалось зарезервировать достаточно места для кучи объектов
  • Android Studio, как упаковать один AAR из нескольких проектов библиотеки?
  • Android Studio Gradle DSL метод не найден: 'android ()' - Ошибка (17,0)
  • OpenCV в Android Studio
  • Android Studio отмечает R красным цветом с сообщением об ошибке «не удается разрешить символ R», но assembly завершается успешно
  • Давайте будем гением компьютера.