首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于android支持库,推荐的proguard设置是什么?

对于android支持库,推荐的proguard设置是什么?
EN

Stack Overflow用户
提问于 2017-01-11 01:49:59
回答 0查看 4.9K关注 0票数 4

我在我的项目中使用android-support-library-v7,当然我想使用程序来最小化和混淆我的代码。问题是,如果我使用proguard,我会得到类似如下的错误:

代码语言:javascript
复制
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.project/org.example.project.ActivityMain}: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.v7.preference.PreferenceCategory
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
    at android.app.ActivityThread.access$700(ActivityThread.java:140)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4921)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
    at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.v7.preference.PreferenceCategory
    at android.support.v7.preference.g.a(Unknown Source)
    at android.support.v7.preference.g.a(Unknown Source)
    at android.support.v7.preference.g.a(Unknown Source)
    at android.support.v7.preference.g.a(Unknown Source)
    at android.support.v7.preference.g.a(Unknown Source)
    at android.support.v7.preference.h.a(Unknown Source)
    at android.support.v7.preference.h.b(Unknown Source)
    at org.exampple.project.ActivityMain.onCreate(Unknown Source)
    at android.app.Activity.performCreate(Activity.java:5206)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
    ... 11 more Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
    at java.lang.Class.getConstructorOrMethod(Class.java:460)
    at java.lang.Class.getConstructor(Class.java:431)
    ... 22 more

在我的preferences.xml文件中使用了PreferenceCategory,我猜它是通过反射访问的。如果在收缩时没有在代码中引用此方法(或类),则Proguard if可能会将其移除。即使不是这样,它也肯定会混淆这个名字。谷歌以其惯常的方式绝对没有提供关于这个主题的文档。

那么,实现良好的收缩和模糊效果的最佳设置是什么呢?在Stack Overflow上也有一些类似的问题,但它们可以归结为:

代码语言:javascript
复制
-keep class android.support.v7.** { *; }

这使得cleary失去了缩小和混淆的目的。

尝试随机猜测设置或通过尝试和错误方法是非常耗时的。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41575171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档