java - 让 Dexguard 不删除未使用的资源

标签 java android proguard dexguard

我很难使用 dexguard 来使其不删除我以这种方式访问​​的资源:

int resourceId=getResources().getIdentifier("pictures", "array", getActivity().getPackageName());

当我执行应用程序时,出现以下异常:

java.lang.RuntimeException: Unable to start activity android.content.res.Resources$NotFoundException: Array resource ID #0x0 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: android.content.res.Resources$NotFoundException: Array resource ID #0x0

我在 proguard-project.txt 中使用了从堆栈溢出的一些相关问题中提取的指令,但没有解决任何问题:

-keepclassmembers class **.R$* {
    public static <fields>;
}

-keep class **.R$*

我如何告诉 dexguard 不要删除此资源?

提前致谢。

最佳答案

在与 dexguard 创建者交谈后,似乎这可以通过使用来实现:

-keepresources array/pictures
-keepresources array/a_*

希望其他人会发现这很有用

干杯。

关于java - 让 Dexguard 不删除未使用的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31310765/

相关文章:

java - @RepositoryRestResource 中的自定义实现

Android 显示 WXGA 与 Nexus 7 之间的差异

java - 使用 ProGuard 混淆私有(private)字段

java - 在 jython 中导入类

java - JSP JDBC SERVLET 显示 classnotfound 异常....一切都正确

java - 如何在 JTextField 中显示附加文件的大小

android - 安装应用程序时不显示权限

android - 无法解析符号 "FirebaseMessagingService"

android - Proguard 不会混淆 Assets (怎么做?)

Android BadParcelableException(Parcelable 协议(protocol)需要一个名为 CREATOR 的 Parcelable.Creator 对象)只有签名的 apk