Студия Android. Я получаю такую ошибку во время запуска приложения.
Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt
build.gradle
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.octo.android.robospice:robospice:1.4.11'
compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}
Как я могу исправить эту ошибку?
отредактированный
Эти исключающие варианты решили мою проблему:
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
android
android-gradle-plugin
Робертас Сеткус
источник
источник
Ответы:
Я думаю, что сравнение строк чувствительно к регистру. попробуй с
exclude 'META-INF/notice.txt'
источник
notice.txt
вместоNOTICE.txt
? Хотя ошибка на самом деле отличается от той, где происходит исключение. У вас естьMETA-INF/notice.txt
файл в вашемsrc/main/resources/
?exclude 'META-INF/notice.txt'
но потом консоль подсказала этоDuplicate files copied in APK META-INF/NOTICE.txt
. Странно, не правда ли? Подresources
каталогом нетC:\PathToAndroidStudioProject\src\main
.exclude 'META-INF/notice.txt'
и другоеexclude 'META-INF/NOTICE.TXT'
, работает ли?packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' }
Я думаю, что вам нужно включить только эти опции в build.gradle :
источник
Короткий ответ:
Посмотрите подробный вывод Gradle с помощью
gradle assemble
и запишите дубликаты файлов и исключите их, используя:Длинный ответ:
Запустите
assemble
задачу gradle из командной строки для подробного вывода:./gradlew assemble || gradle assemble
Это автоматически показывает, что исключить:
Смотрите эту часть в выводе:
Он даже показывает список зависимостей, которые возникли дубликаты файлов (ЛИЦЕНЗИЯ). Смотрите строки с Origin # в выходных данных.
источник
Добавьте это в свой файл build.gradle ...
как это...
источник
Это больше, чем одна ошибка, вы правы.
Под
apply plugin: 'android-library'
Добавь это ::
android { packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } }
1-я ошибка - из-за дубликатов файлов, 2-я - из-за файлов LICENSE и NOTICE. Будет работать после
РЕДАКТИРОВАТЬ :: Смотрите мой пост здесь о выявлении проблем :: Плагин Android Gradle 0.7.0: «дублировать файлы во время упаковки APK»
источник
это работает для меня
источник
Интересно, что когда я удалил эту строку из gradle, это сработало:
источник
Мне пришлось немного поиграть, чтобы найти подходящее место для упаковки. Решение проблемы с дублирующимися файлами для конфликта между jackson-core: 2.2.2 и jackson-databind: 2.2.2 Также кажется, что DSL недавно изменился. Так что в недавней версии Android Studio 1.4.1 с buildTools 23 вы должны поставить Android. варианты упаковки на том же уровне, что и compileOptions, а НЕ внутри какой-либо модели {android { фигурных скобок!
источник