Дублировать файлы во время упаковки APK app-debug-unaligned.apk
Я получил эту ошибку Duplicate files during packaging of APK app-debug-unaligned.apk
, когда поместил 2 файла jar:
Если пользователь 1 файл jar - httpmime-4.3.5.jar
, я не получу эту ошибку.
Пожалуйста, помогите мне, как избежать этой ошибки и все еще можете использовать 2 файла jar в выше,
Спасибо,
p/s: Я использую Android Studio версии 0.8.6.
Error Detail
Ошибка: дублировать файлы во время упаковки APK...\приложение\сборка\выходы\APK\приложение-отладки unaligned.apk Путь в архиве: META-INF/ЗАВИСИМОСТЬ Происхождение 1:...\app\libs\httpclient-4.3.5.jar Происхождение 2:...\app\libs\httpmime-4.3.5.jar
build.gradle
android {
compileSdkVersion 20
buildToolsVersion '20.0.0'
defaultConfig {
applicationId 'com.app'
minSdkVersion 9
targetSdkVersion 20
versionCode 1
versionName '1.0'
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:20.0.0'
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.google.android.gms:play-services:5.2.08'
compile 'com.viewpagerindicator:library:[email protected]'
compile 'de.hdodenhof:circleimageview:1.2.0'
compile files('libs/httpmime-4.3.5.jar')
}
UPDATE
Я изменил с compile files('libs/httpmime-4.3.5.jar')
на использование Maven Link. Я снова получил такую же ошибку после того, как вы установили связь 2 maven:
compile 'org.apache.httpcomponents:httpmime:4.4-alpha1'
compile 'org.apache.httpcomponents:httpcore:4.4-alpha1'
Это предупреждение
Предупреждение. Зависимость org.apache.httpcomponents: httpclient: 4.4-alpha1 is игнорируется для отладки, поскольку это может противоречить внутренней версии предоставляемый Android. В случае возникновения проблемы переупаковать его с помощью jarjar, чтобы изменить пакеты классов.
Предупреждение: Зависимость от org.apache.httpcomponents: httpclient: 4.4-alpha1 игнорируется для выпуска поскольку это может противоречить внутренней версии, предоставляемой Android. В случае возникновения проблемы переупаковать его с помощью jar, чтобы изменить пакеты классов.
Пожалуйста, помогите мне исправить.
SOULITION Я знаю хороший ответ, добавив эти строки, исправив ошибку Duplicate files
:
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'
}
Ответы
Ответ 1
Вы можете заменить compile files('libs/httpmime-4.3.5.jar')
на этот компилятор 'org.apache.httpcomponents:httpmime:4.3.5'
.
Также вы дублируете зависимости compile fileTree(include: ['*.jar'], dir: 'libs')
уже включает compile files('libs/httpmime-4.3.5.jar')
Ответ 2
обновите свой build.gradle и добавьте следующие строки
android{
.
.
.
packagingOptions {
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE'
}
}
это исправит эту ошибку. Я получил ту же ошибку, что и исправил ее.
Ответ 3
Обновите это в файле build.gradle.
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Ответ 4
Я обновил gradle, теперь он работает
упаковкаОпции { исключить "META-INF/DEPENDENCIES" исключить 'META-INF/LICENSE' исключить 'META-INF/LICENSE.txt' исключить "META-INF/NOTICE.txt" }
Ответ 5
добавить приведенный ниже код к зависимостям
группа компиляции: 'org.apache.httpcomponents', имя: 'httpclient-android', версия: '4.3.5' compile (группа: 'org.apache.httpcomponents', имя: 'httpmime', версия: '4.3.5') { exclude module: 'org.apache.httpcomponents: httpclient' }
теперь, если вы запустите это, он покажет вам, почему он говорит, что дубликат может быть из-за META-INF/NOTICE, META-INF/LICENSE, добавьте, что сначала снова запустить, он может отображать другой тип.
добавить все как показано ниже в разделе Android
упаковкаОпции { исключить 'META-INF/LICENSE.txt' исключить "META-INF/NOTICE" исключить 'META-INF/LICENSE' }
определенно это решит вашу проблему.
удалите весь файл зависимостей из системы перед сборкой.