유니티로 게임 개발 막바지 상황에서 기저귀값좀 벌어보겠다고 Admob Plugin을 넣었는데 컴파일 에러가 발생하네요.
일단 문제의 원인을 찾아서 해결은 했는데 이건 By-pass 방법일듯해서 당분간 실질적인 해결책을 찾을때까지는 요렇게 우회하는 방법으로 사용해야겠네요.
문제의 에러코드입니다.
CommandInvokationFailure: Gradle build failed.
C : \Program Files\Java\jdk1.8.0_92\bin\java.exe - classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease"
stderr[
Note:there were 7 duplicate class definitions.
(http ://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Warning: com.google.android.gms.internal.zzbga : can't find referenced method 'boolean isInstantApp()' in library class android.content.pm.PackageManager
Warning : com.google.android.gms.internal.zzbgb : can't find referenced method 'boolean isInstantApp(java.lang.String)' in library class android.content.pm.PackageManager
Warning : there were 2 unresolved references to library class members.
You probably need to update the library versions.
(http ://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
FAILURE: Build failed with an exception.
* What went wrong :
Execution failed for task ':transformClassesAndResourcesWithProguardForRelease'.
> java.io.IOException: Please correct the above warnings first.
* Try :
Run with --stacktrace option to get the stack trace.Run with --info or --debug option to get more log output.
]
이 문제를 해결하기 위한 방법을 Proguard 사이트에서 찾았는데 내용은 아래와 같습니다.
https://www.guardsquare.com/en/proguard/manual/troubleshooting#unresolvedlibraryclassmember
Note: duplicate definition of program/library class
Your program jars or library jars contain multiple definitions of the listed classes. ProGuard continues processing as usual, only considering the first definitions. The warning may be an indication of some problem though, so it's advisable to remove the duplicates. A convenient way to do so is by specifying filters on the input jars or library jars. You can switch off these notes by specifying the -dontnote
option.
The standard Android build process automatically specifies the input jars for you. There may not be an easy way to filter them to remove these notes. You could remove the duplicate classes manually from your libraries. You should never explicitly specify the input jars yourself (with -injars
or -libraryjars
), since you'll then get duplicate definitions. You should also not add libraries to your application that are already part of the Android run-time (notably org.w3c.dom
, org.xml.sax
, org.xmlpull.v1
, org.apache.commons.logging.Log
, org.apache.http
, and org.json
). They are possibly inconsistent, and the run-time libraries would get precedence anyway.
근데 잘 못하겠더라구요. 그래서 가장 단순하게 이 문제를 우회하는 방법을 찾아봤습니다.
이 에러코드를 우회하는 방법은 아래와 같습니다. 안드로이드 빌드 옵션을 살펴보시면 Minify 라고 하는 섹션에 Release 란에 "Proguard"로 되어 있을 것입니다. 여기서 Proguard로 선택되어 있다면 위에 메시지 처럼 에러가 발생하는데
이 부분을 꺼 버리고 빌드하게 되면 아무런 문제없이 컴파일이 됩니다.
참고. Minify 이 옵션은 Android Build System 세팅을 Interanl로 하게되면 비활성화 되고 Gradle(New)로 선택하게 되면 활성화 되는 부분입니다.
이 방법은 근본적인 해결책은 아닌듯합니다만, 당장 컴파일하고 테스트 할때 유용하게 사용할 수 있을것 같네요. Proguard에 대해서 자세하게 알고 싶은 분들은 아래 링크를 참조해 주세요.
https://www.guardsquare.com/en
'개발 > 정보' 카테고리의 다른 글
유니티(Unity) 를 단시간에 학습하는 꿀팁!! (1) | 2018.11.06 |
---|---|
큐비클(Qubicle) 유니티에 Import 할때 픽셀 흐려지는것 해결방법 (0) | 2018.01.19 |
유니티 BuildMethodException : Build Filed wit Errors 우회방법 (0) | 2018.01.08 |
풋볼데이 선수뽑기 그동안 모은거 한방에 해 보기 (0) | 2017.12.31 |
아직도 하는 사람이 있나 풋볼데이 첼시 근황 (2) | 2017.11.29 |
유니티 에디터 네임스페이스 오류 발생시 해결방법 (UnityEditor could not be found) (1) | 2017.11.28 |
유니티 Nav Mesh Surface 사용시 에러 해결방법(Source Mesh does not allow read access) (0) | 2017.10.30 |
유니티 길만들기 #3 자동길찾기 케릭터 구현하기 (0) | 2017.10.18 |
최근댓글