java - Android Proguard - 一步一步

标签 java android proguard

我第一次尝试在我的 Android 项目上使用 ProGuard。

我有几个问题:

  1. 对于/libs 文件夹中的 jar 文件,应如何在 proguard-project.txt 中引用它们?

    • -injars/libs/commons-lang3-3.1.jar
    • -libraryjars/libs/commons-lang3-3.1.jar
  2. 对于我工作区中的库项目,我是否必须在 proguard-project.txt 中写下一些内容?

  3. 我收到很多这样的警告:

->

[2013-08-12 14:27:13 - xy.de] Warning: library class android.graphics.drawable.LayerDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.graphics.drawable.ShapeDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.graphics.drawable.ShapeDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.graphics.drawable.StateListDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlSerializer
[2013-08-12 14:27:13 - xy.de] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-08-12 14:27:13 - xy.de] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser

这是怎么回事? XmlPullParser 是 Android 框架的一部分,对吗?怎么会少呢?

4..

[2013-08-12 14:27:13 - bauen.de] Warning: there were 42 unresolved references to program class members.
[2013-08-12 14:27:13 - bauen.de]          Your input classes appear to be inconsistent.
[2013-08-12 14:27:13 - bauen.de]          You may need to recompile them and try again.
[2013-08-12 14:27:13 - bauen.de]          Alternatively, you may have to specify the option 
[2013-08-12 14:27:13 - bauen.de]          '-dontskipnonpubliclibraryclassmembers'.

我真的应该设置-dontskipnonpubliclibraryclassmembers吗?

  • proguard-project.txt 中的设置是否有一定的顺序?
  • 最佳答案

    您的一个库包含 org.xmlpull.v1 类的副本,即使这些类已存在于 Android 运行时中。您应该从库中删除这些类。无论如何,Android 运行时中的版本都会优先。

    CFR。 ProGuard 手册 > 故障排除 > Warning: library class ... depends on program class ...

    关于java - Android Proguard - 一步一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187163/

    相关文章:

    java - log4j:WARN 找不到记录器的附加程序 - 使用 slf4j-log4j12

    java - 在解压缩 .gz 文件时,解压缩并创建为本地副本的文件没有 .gz 可用的原始文件的最后修改时间

    android - 在Android上测试发行版应用,测试用的APK不是 `proguarded`

    android - 在 android 中运行 proguard 时 Jackson.jar 出错

    javascript - 一键禁用按钮后是否有机会获得双击按钮?

    java - 依次播放声音池中的声音

    javascript - 如何存储从 Phonegap/Android 应用程序拍摄的照片

    android - 获取连接的应用程序名称

    android - Dagger2 继承的子组件多重绑定(bind)

    android - 在应用程序中存储和保护私有(private) API key 的最佳实践