APK META-INF / LICENSE.txt에 복사 된 Android Studio 0.4 두 파일
Studio를 0.3.7에서 0.4.0으로 업데이트 한 후 프로젝트를 할 수 없습니다. stackoverflow에 대한 해결책을 찾았습니다 : 파일 복사 (Android Studio 0.4.0)
0.7. +를 gradle로 업데이트하기 프로젝트를 업데이트했지만 다음 어디에 배치할지 모르겠습니다.
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 우분투에서 개발 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'
}
}
편집 : 거의 모든 OS에있는 프로젝트에 "라이센스 사본을 포함"할 의무가 포함됩니다. 즉, 모든 OS의 사본을 포함해야합니다. gradle에서 "제외"하면 위반하게됩니다.
프로젝트에서 제외하는 것이 최선의 선택이 아닐 수 있습니다. 정보에 대해 RS에게 감사합니다.
주의!! 오픈 소스 라이선스 위반 가능성.
위에서 제안한대로 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의 새 버전에 따라 동일한 문제에 직면했습니다. build.gradle 텍스트 형식 아래 는 나를 위해 작동합니다.
내 libs 폴더에 두 개의 jackson jar가 있습니다.
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'
}
}
SURE도하지 의 경우 오류 가 표시되고
> 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'
}
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 프로젝트 추가
2를 추가합니다.
android{
packagingOptions{
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
}
}
비슷한 오류가 발생하여 packingOptions()
및 exclude
기능 없이 해결했습니다 . 두 개의 종속성을 추가했지만 하나는 첫 번째의 하위 그룹이었습니다. 이로 인해 오류가 발생했으며 그중 하나를 제거하면 깨끗한 빌드를 얻었습니다. 종속성 블록 내에서 유사한 오류를 확인하는 것이 좋습니다.
다음을 사용 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 "**"
}
}
'IT' 카테고리의 다른 글
intellij가 자동 유선 저장소에 대한 유형의 빈을 사용합니다. (0) | 2020.07.25 |
---|---|
SessionState와 ViewState의 차이점은 무엇입니까? (0) | 2020.07.25 |
…의 강화 / 키를위한 TypeScript? (0) | 2020.07.25 |
다른 목록 ID에서 목록 정렬 (0) | 2020.07.25 |
MD5 해시 계산 (0) | 2020.07.25 |