【问题标题】:Build fails with Proguard returning Error Code - 1构建失败,Proguard 返回错误代码 - 1
【发布时间】:2017-02-01 05:40:28
【问题描述】:
[2016-09-23 16:44:03 - myAppAndroid] Proguard returned with error code 1. See console
[2016-09-23 16:44:03 - myAppAndroid] Note: there were 5021 duplicate class definitions.
[2016-09-23 16:44:03 - myAppAndroid] Warning: library class org.apache.http.impl.client.BasicCookieStore extends or implements

程序类 org.apache.http.client.CookieStore [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.RequestWrapper 扩展或实现 程序类 org.apache.http.message.AbstractHttpMessage [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.RequestWrapper 扩展或实现 程序类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicHttpRequest 扩展或实现程序 类 org.apache.http.message.AbstractHttpMessage [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicHttpResponse 扩展或实现 程序类 org.apache.http.message.AbstractHttpMessage [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.client.HttpClient 依赖于程序类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.client.HttpClient 依赖于程序类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.client.HttpClient 依赖于程序类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.client.HttpClient 依赖于程序类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.CookieStore [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.CookieStore [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.CookieStore [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.AbstractHttpClient 取决于程序 类 org.apache.http.client.methods.HttpUriRequest [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.BasicCookieStore 依赖于程序类 org.apache.http.cookie.Cookie [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.BasicCookieStore 依赖于程序类 org.apache.http.cookie.Cookie [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.client.DefaultHttpClient 取决于程序类 org.apache.http.client.CookieStore [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.impl.io.AbstractSessionInputBuffer 取决于程序 类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.io.SessionInputBuffer 取决于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.BasicLineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.LineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.LineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.LineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.LineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 警告:库类 org.apache.http.message.LineParser 依赖于程序类 org.apache.http.util.CharArrayBuffer [2016-09-23 16:44:03 - myAppAndroid] 您应该检查是否需要指定其他程序 jar。 [2016-09-23 16:44:03 - myAppAndroid] 警告:有 32 个库类实例,具体取决于程序类。 [2016-09-23 16:44:03 - myAppAndroid] 你必须避免这种依赖,因为程序类会 [2016-09-23 16:44:03 - myAppAndroid] 被处理,而库类将保持不变。 [2016-09-23 16:44:03 - myAppAndroid] java.io.IOException:请先更正上述警告。 [2016-09-23 16:44:03 - myAppAndroid] 在 proguard.Initializer.execute(Initializer.java:321) [2016-09-23 16:44:03 - myAppAndroid] 在 proguard.ProGuard.initialize(ProGuard.java:211) [2016-09-23 16:44:03 - myAppAndroid] 在 proguard.ProGuard.execute(ProGuard.java:86) [2016-09-23 16:44:03 - myAppAndroid] 在 proguard.ProGuard.main(ProGuard.java:492)

【问题讨论】:

  • 尝试删除您在 libs 文件夹中添加但从未使用过的库。

标签: android android-proguard worklight-studio


【解决方案1】:

这些只是警告。也许你可以忽略它们:

-dontwarn org.apache.http.**

意思是:

忽略与包org.apache.http 和子包相关的警告。

【讨论】:

  • 我给了这个 -dontwarn 所有警告。但仍然发生同样的错误。我的是 IBM MFP 7.1 的消费者版本
【解决方案2】:

首先,请获取您在应用中使用的库的最新版本。

第二次在你的 proguard 文件中使用 dontwarn 属性

例如,

-keep class twitter4j.** { *; }
-dontwarn twitter4j.**

这是为了跳过 twitter4j 库引发的警告。同样,您可以申请您在应用中使用的库。

更多参考:

How to use -dontwarn in ProGuard?

您也可以尝试这些命令中的任何一个

 -keep class android.support.v4.** { *; }   
    -dontwarn android.support.v4.**
    -dontwarn javax.activation.**
    -dontwarn javax.security.**
    -dontwarn java.awt.**
    -libraryjars <java.home>/lib/rt.jar
    -keep class javax.** {*;}
    -keep class com.sun.** {*;}
    -keep class myjava.** {*;}
    -keep class org.apache.harmony.** {*;}
    -keep public class Mail {*;}        
    -dontshrink

当然是你的库名

【讨论】:

  • 我没有使用这个包。我给了这个 -dontwarn 所有警告。但仍然发生同样的错误。我的是 IBM MFP 7.1 的消费者版
  • 请检查您的项目中是否还有其他proguard文件。
【解决方案3】:

将 android sdk -> tools -> Proguard 替换为 newset proguard 版本。这会很好用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多