developer tip

Gradle이 0이 아닌 종료 값 1로 완료되었습니다 (ic_launcher.png : 오류 : 중복 파일).

copycodes 2020. 10. 18. 18:28
반응형

Gradle이 0이 아닌 종료 값 1로 완료되었습니다 (ic_launcher.png : 오류 : 중복 파일).


Gradle에서 이상한 오류가 발생했습니다. 도와주세요!

/.../app/build/intermediates/res/debug/drawable-xxhdpi-v4/ic_launcher.png:
    error: Duplicate file
/.../app/build/intermediates/res/debug/drawable-xxhdpi/ic_launcher.png:
    Original is here. The version qualifier may be implied.
Error:Execution failed for task ':app:processDebugResources'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:
Process 'command '/.../sdk/build-tools/22.0.1/aapt'' finished with non-zero exit value 1

정상적으로 작동하기 전에는 classpath com.android.tools.build:gradle:1.2.2를 넣었으므로 오류가 발생합니다.


G +에 대한 Xavier Durochet의 설명에 따르면 , 사용하는 라이브러리 중 하나가 자체 라이브러리를 가지고 있기 ic_launcher.png때문입니다. 물론 그렇게해서는 안됩니다 (아래에서 자세히 설명).

로그에 언급 된 두 아이콘이 다를 가능성이 있습니다. 하나는 귀하의 것이고 다른 하나는 누군가가 라이브러리에서 제거하는 것을 잊은 일반적인 안드로이드 아이콘 일 가능성이 높습니다.

문제가되는 종속성을 보려면 Ctrl + Shift + N 두 번 (비 프로젝트 일치의 경우)을 누르고 입력 ic_launcher.png하십시오 (스크린 샷의 마지막 줄 참조).여기에 이미지 설명 입력

이 문제를 해결하려면 일시적으로 추가 -v4하여 그릴 수 Resouce의 폴더에 규정 (또는 이동 ic_launcher.png*dpi-v4당신이 당신의 이유가있는 경우) - 학점에 자비 Durochet 솔루션을 위해. 아이콘의 이름을 다른 이름으로 변경하고AndroidManifest.xml

여기에 이미지 설명 입력

진짜 문제는 문제가되는 lib가 쓸모없는 아이콘을 가지고 있다는 것입니다. 자체 리소스 (예 : ActionBarSherlock 또는 Google의 자체 Support v7 라이브러리)가있는 라이브러리는 고유 한 이름 지정 체계를 사용하여 리소스 이름 ( abs_, abc_) 과의 충돌을 방지합니다 .

런처 아이콘은 라이브러리에 비즈니스가 없으므로 사용중인 lib의 작성자에게 중복 ic_launcher.png파일 을 제거하는 것을 잊었다는 사실을 알리는 것이 좋습니다 .

또한 언급 할만큼 가치를 같이 배리 캐롤은 매우 정확하게 언급 같은 논의 가 많이 없다 :이 자원이 도서관에서 그 overlap은 안 의미하지 않는다 합법적 예를 들면 외모를 변경 (자신과 함께 LIB의 자원을 오버라이드 (override)하는 이유 라이브러리 제공 활동의) 및 gradle 플러그인의 리소스 병합 로직은 의도적으로이를 허용합니다.

이 특별한 경우에는 lib가 android gradle 플러그인 버전 (1.2.2 이전 버전)에서 뒤에있을 때 충돌이 발생합니다.이 경우 리소스 *dpi-v4한정자가 있거나 없는 두 개의 다른 폴더에 있습니다 . 그러나 실제로는 동일한 리소스 "버킷"에 있으므로 시스템에서 중복 된 것으로 간주합니다.

이 글리치 쓸모없는 ic_launcher.png재정의 (실제로는 글리치로 인한 충돌)를 가져 오지만이 상황은 다른 종류의 리소스에 보편적으로 나쁜 것은 아닙니다.

즉, 때때로 의도적으로 lib의 리소스를 재정의하고이 결함으로 인해 여전히 오류 메시지가 표시됩니다. 이번에는 리소스 이름에 실제 문제가 없으므로 위의 임시 해결책 또는 플러그인 버전을 보류하는 것이 좋습니다.


타사 라이브러리를 사용하는 동안 동일한 문제가 발생했습니다. ( Github의 RomainPiel / Shimmer-android 라이브러리)

이를 해결하기 위해 ic_launcher.png 파일을 드로어 블 폴더에서 mipmap 폴더로 옮겼습니다. 그리고 문제가 해결되었습니다.

여기에 이미지 설명 입력


com.android.tools.build:gradle:1.1.3으로 다운 그레이드하면 내 문제가 해결되었습니다.


Here is the general method to find the problem:

Run

./gradlew build --stacktrace --info

and You will find the details of errors. I found my error : a duplicate class caused a TOP-Level error, and remove the duplicated one will solve the problem.


For me a simple "clean project" and "rebuild project" did the trick.


Upgrade to 1.2.3, but ensure that your gradle and buildToolsVersion are identically in your project and the used aars.

In case you use external libs where you can't control the gradle/build version: Contact the author or check the sources by your own. Some libraries have unused launcher icons which will cause this conflict. Removing this icons will solve your problem. Identically named sources (e.g menu.xml) could also cause this issue in rare cases. An easy workaround would be to rename your ressource.


Just rename ic_launcher.png to something else (e.g ico_launcher.png)


In my case I have added apostrophe s ('s) to strings.xml file. Do check guys for any such error and remove it will definitely help. It's so annoying the IDE can't show the error properly rather makes all resources out of sync..

I know it's not the case which is asked in Question but error is quite same i.e. Gradle execution gets failed.


Simply Rename the Image (Rightclick on the Image, Select Refactor and select Rename). It will solve the issue as the Issue has arise as one of the library is also using the image with the same name.


I had the same problem and what follows worked for me:

  • rename your icon
  • add tools:replace="android:icon" to your <application> tag in the Manifest

You can try just the first step, but I still had problems when merging the manifest files. This way it should override whatever resource was used in the library.


Follow this link Here

Or

Make change like this.

repositories {
maven {url "https://clojars.org/repo/"}
}
dependencies {
compile 'frankiesardo:icepick:{{latest-version}}'
**provided** 'frankiesardo:icepick-processor:{{latest-version}}'
}

Update to newest gradle plugin 1.5.0 sloved this issue. Update following script in your root build.gradle file

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
    ...
}

I managed to trigger this problem by inconsistent capitalisation of filename extensions. I had a .jpg image in one drawable directory, but an image of the same filename but .JPG in a different drawable directory. The filenames and directories were right, but the extensions weren't.

참고 URL : https://stackoverflow.com/questions/29965398/gradle-finished-with-non-zero-exit-value-1-ic-launcher-png-error-duplicate-fi

반응형