Androidプロジェクトにサードパーティライブラリ(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ファイルを一度にのみ含まれていることを確認作った、と私は重複したソースファイルを含めています他に方法はありませんプロジェクトのどこにでも置くことができます。
なぜ、Proguardは重複定義について文句を言いますか?
私のために解決してくれたプロジェクトのきれいなもの(提案された回答をたくさん試した後)は、libの古いバージョンがビルドフォルダなどに保存されていたようです。 – Fonix