【发布时间】:2016-01-07 23:10:18
【问题描述】:
我为我的 Android 项目运行 ProGuard 并收到以下警告:
Note: duplicate definition of library class [org.apache.http.conn.scheme.HostNameResolver]
Note: duplicate definition of library class [org.apache.http.conn.scheme.SocketFactory]
Note: duplicate definition of library class [org.apache.http.conn.ConnectTimeoutException]
Note: duplicate definition of library class [org.apache.http.params.HttpParams]
Note: duplicate definition of library class [android.net.http.SslCertificate$DName]
Note: duplicate definition of library class [android.net.http.SslError]
Note: duplicate definition of library class [android.net.http.SslCertificate]
Note: there were 7 duplicate class definitions.
我发现here 可以通过忽略它来解决这个问题:
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**
-keep class android.net.http.** { *; }
-dontwarn android.net.http.**
我看不到从使用过的库中删除重复项的方法。即使在使用dontwarn 之后,警告也不会消失。
这是处理此警告的正确方法,只是忽略它还是会导致问题?
【问题讨论】:
-
您似乎从多个库中导入了一些类。你可以在 proguard config 中添加 android library jar
-
您能否为此发布一个示例。 Android plrguard def 说你不应该使用:libraryjars。见:proguard.sourceforge.net/manual/…
-
发布您的
progaurd规则文件 -
@confile 你的问题解决了吗?
-
我通过从我的项目中删除 apache 库并替换为我自己的代码解决了这个问题。
标签: java android android-studio proguard android-proguard