【问题标题】:Android Proguard - Internet connectivity issue after exporting applicationAndroid Proguard - 导出应用程序后的互联网连接问题
【发布时间】:2013-08-02 05:05:44
【问题描述】:

我目前在启用 proguard 的情况下导出应用程序,问题是应用程序工作正常,但应用程序在没有 proguard 的情况下部署,但如果在启用 proguard 的情况下导出和部署,应用程序会出现未连接互联网的错误。以下是proguard文件文本

-dontshrink
-dontoptimize
-dontwarn com.example.google.tv.**
-dontwarn android.support.**
-dontwarn org.ksoap.**
-dontwarn android.view.**
-dontwarn android.graphics.**
-dontwarn android.content.**
-dontwarn android.util.**
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
#-libraryjars libs/ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar
#-libraryjars libs/android-support-v4.jar

如果我删除

-dontwarn android.view.**
-dontwarn android.graphics.**
-dontwarn android.content.**
-dontwarn android.util.**

那么这是我收到的日志

[2013-08-02 10:29:04 - Project] Proguard returned with error code 1. See console
[2013-08-02 10:29:04 - Project] Note: there were 4 duplicate class definitions.
[2013-08-02 10:29:04 - Project] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlSerializer
[2013-08-02 10:29:04 - Project] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.ColorDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.graphics.drawable.LayerDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-02 10:29:04 - Project]       You should check if you need to specify additional program jars.
[2013-08-02 10:29:04 - Project] Warning: there were 13 instances of library classes depending on program classes.
[2013-08-02 10:29:04 - Project]          You must avoid such dependencies, since the program classes will
[2013-08-02 10:29:04 - Project]          be processed, while the library classes will remain unchanged.
[2013-08-02 10:29:04 - Project] java.io.IOException: Please correct the above warnings first.
[2013-08-02 10:29:04 - Project]     at proguard.Initializer.execute(Initializer.java:321)
[2013-08-02 10:29:04 - Project]     at proguard.ProGuard.initialize(ProGuard.java:211)
[2013-08-02 10:29:04 - Project]     at proguard.ProGuard.execute(ProGuard.java:86)
[2013-08-02 10:29:04 - Project]     at proguard.ProGuard.main(ProGuard.java:492)

【问题讨论】:

  • 您是否添加了任何其他库?
  • 我添加了一个 google tv 导航库 .. 你可以在属性文件 '-dontwarn com.example.google.tv.**' 中查看包
  • 使用-libraryjars 而不是-dontwarn
  • 你说的是'-dontwarn android.view.** -dontwarn android.graphics.** -dontwarn android.content.** -dontwarn android.util.**'
  • 还是左导航栏库?

标签: android obfuscation proguard


【解决方案1】:

您应该从您的库中删除包org.xmlpull.v1。它已经存在于 Android 运行时中(无论如何都会优先)。添加重复的包最多会增加应用程序的大小,最坏的情况可能会导致版本控制问题。在这种情况下,ProGuard 会检测到一些依赖冲突。

注意是“ProGuard”,而不是“Progaurd”。

【讨论】:

  • 先生,您能否详细说明您的答案。好像应该从 Progaurd 中删除/排除“org.xmlpull.v1”,或者应该以某种方式从项目中删除或在 progaurd 中忽略它?
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多