Android 프로젝트에 제 3 자 라이브러리 (JmDNS)를 추가하려고합니다.Android Proguard 중복 정의
기본 프로젝트 디렉토리 아래에 'libs'폴더를 생성하고 디렉토리에 jar 파일을 놓습니다.
Ant (ant release)를 사용하여 프로젝트를 빌드하려고하면 JmDNS jar 파일의 각 클래스 인 것으로 보이는 항목에 대해 '중복 정의'라는 알림이 표시됩니다.
....
[proguard] Note: duplicate definition of library class [javax.jmdns.impl.tasks.state.Canceler]
[proguard] Note: duplicate definition of library class [javax.jmdns.impl.tasks.state.DNSStateTask]
[proguard] Note: duplicate definition of library class [javax.jmdns.impl.tasks.state.Prober]
[proguard] Note: duplicate definition of library class [javax.jmdns.impl.tasks.state.Renewer]
[proguard] Note: duplicate definition of library class [javax.jmdns.impl.tasks.state.package-info]
[proguard] Note: duplicate definition of library class [javax.jmdns.package-info]
[proguard] Note: there were 357 duplicate class definitions.
빌드 또한 다음과 같은 오류와 함께 실패합니다
BUILD FAILED
/path/Tools/ant-android-scala/build-scala.xml:183: Can't write [/path/bin/projectname-debug-shrinked.jar] (Can't read [/path/projectname/libs/jmdns.jar(;;;;!META-INF/MANIFEST.MF,!library.properties)] (Duplicate zip entry [jmdns.jar:javax/jmdns/JmDNS$Delegate.class]))
내가 jar 파일 한 번에만 포함되며, I 중복 소스 파일을 포함하고 다른 방법이 없다는 것을 확인했습니다 프로젝트의 어느 곳에서나 사용할 수 있습니다.
왜 Proguard는 중복 정의에 대해 불만을 제기합니까?
(제안 된 답변을 여러 번 시도한 후에) 프로젝트를 깨끗하게 처리하면 빌드 폴더 또는 무언가에 보관중인 라이브러리의 오래된 버전이 보입니다. – Fonix