minifyEnabled를 사용할 때 "중복 된 zip 입력 오류"가 나타납니다. 안드로이드 스튜디오의중복 된 우편 항목 [commons-io-1.3.2.jar : org/apache/commons/io/CopyUtils.class]
버전 : 1.0 RC 1
OS 버전 : 맥 OS 10.9.5
자바 JRE/JDK 버전 "1.7.0_71"
Gradle을 : 0.14.0
다음의 일부입니다 내 build.gradle 설정. 내가 assembleDebug 때
compileSdkVersion 21
buildToolsVersion "21.1.1"
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/MANIFEST.MF'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
}
buildTypes {
release {
minifyEnabled true
//proguardFile file('proguard-project.txt')
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
minifyEnabled true
//proguardFile file('proguard-project.txt')
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
debuggable true
applicationIdSuffix = '.alpha'
versionNameSuffix = 'a'
}
}
dependencies {
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.2'
compile project(':modules:Aviary-SDK')
compile project(':modules:facebook')
compile ('com.crashlytics.android:crashlytics:1.+'){
exclude group: 'commons-io', module: 'commons-io' //added this because crashlytics seems to be using commons-io
}
compile 'com.google.android.gms:play-services:6.1.11'
compile 'org.apache.httpcomponents:httpcore:4.3.2'
compile 'org.apache.httpcomponents:httpmime:4.3.5'
}
는이 오류 메시지가 :
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:proguardDebug'.
> java.io.IOException: Can't write [/Users/tomoaki/Workspace/temp/someproject/app/build/intermediates/classes-proguard/debug/classes.jar] (Can't read [/Users/tomoaki/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-io/1.3.2/b6dde38349ba9bb5e6ea6320531eae969985dae5/commons-io-1.3.2.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [commons-io-1.3.2.jar:org/apache/commons/io/CopyUtils.class]))
나는
this question 읽을 수 있지만 대답은 나를 위해 작동하지 않았다. 어떤 도움을 주셔서 감사합니다.
"gradlew : : dependencies"를 실행할 수 있습니까? ''을 앱 모듈 이름으로 바꿉니다. "commash-io"가 "crashlytics"외의 다른 몇 가지 라이브러리에 나타나며이를 제외해야 할 수도 있습니다. 결과를 게시하십시오. 감사. –
AndroidGuy
@AndroidGuy 도움에 감사드립니다! 나는 명령을 실행했고 그것을 [요지] (https://gist.github.com/tomoima525/97eaf11e59698b57afe6)에 넣었습니다. Aviary에는 "commons-io"가 있습니다. 나는 시도 : 컴파일 프로젝트 (': 모듈 : 조류 사육장 - SDK') { 그룹 제외 '공유지-IO'모듈을 '공유지-IO' } 하지만 그것은 작동하지 않았다. Gradle DSL method가 발견되지 않았습니다 : exclude() – tomoima525
느슨하게 관련되었지만 같은 트릭이 작동했습니다 : oac commons-io가 'commons-io : commons-io'라는 것에 의존하는 것처럼 보이는 동일한 문제가 발생했습니다. 그것들은 같은 이름을 가지고 있기 때문에 무해한 것처럼 보이기 때문에 까다로운 일이지만, 속임수 오류를 일으킬 수있는 전이 의존성이 있습니다. – jayunit100