android支持库的推荐proguard设置是什么?

android支持库的推荐proguard设置是什么?,第1张

概述我在我的项目中使用 android-support-library-v7,当然我想使用progurad来最小化和混淆我的代码. 问题是,如果我使用proguard,我会收到与此类似的错误: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.proj 我在我的项目中使用 android-support-library-v7,当然我想使用progurad来最小化和混淆我的代码.
问题是,如果我使用proguard,我会收到与此类似的错误:

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.access0(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

Preferencecategory在我的preferences.xml文件中使用,我想它是通过反射访问的.如果在缩小时代码中未引用此方法(或类),则可能会删除Proguard.即使不是,它肯定会混淆这个名字.
谷歌以其通常的方式提供绝对没有关于这个主题的文件.

那么,实现良好收缩和良好混淆的最佳设置是什么.
Stack Overflow上有一些类似的问题,但它们归结为:

-keep class androID.support.v7.** { *; }

这种清晰无视萎缩和混淆的目的.

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

解决方法@H_502_30@ 如果您正在使用Gradle,则支持库使用 consumerProguardFiles功能自动包含相应的ProGuard,这意味着您无需手动包含任何内容.

查看ProGuard文件中的preferences-v7(存储在AAR中的proguard.txt文件中),它包含以下行:

# Preference objects are inflated via reflection-keep public class androID.support.v7.preference.Preference {  public <init>(androID.content.Context,androID.util.AttributeSet);}-keep public class * extends androID.support.v7.preference.Preference {  public <init>(androID.content.Context,androID.util.AttributeSet);}

它涵盖了它说你缺少的确切方法(因为Preferencecategory间接扩展了Preference).检查以确保您使用完整的Gradle依赖项.

总结

以上是内存溢出为你收集整理的android支持库的推荐proguard设置是什么?全部内容,希望文章能够帮你解决android支持库的推荐proguard设置是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存