Java 使Dexguard不删除未使用的资源

Java 使Dexguard不删除未使用的资源,java,android,proguard,dexguard,Java,Android,Proguard,Dexguard,我在使用dexguard时遇到了困难,无法通过以下方式删除我访问的资源: int resourceId=getResources().getIdentifier(“图片”、“数组”、getActivity().getPackageName()) 当我执行应用程序时,会出现以下异常: java.lang.RuntimeException:无法启动活动 android.content.res.Resources$NotFoundException:数组资源ID#0x0 在android.app.Ac

我在使用dexguard时遇到了困难,无法通过以下方式删除我访问的资源:

int resourceId=getResources().getIdentifier(“图片”、“数组”、getActivity().getPackageName())

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

java.lang.RuntimeException:无法启动活动 android.content.res.Resources$NotFoundException:数组资源ID#0x0 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在android.app.ActivityThread.access$800(ActivityThread.java:151) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:135) 位于android.app.ActivityThread.main(ActivityThread.java:5254) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 原因:android.content.res.Resources$NotFoundException:数组资源ID#0x0

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

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

-keep class **.R$*
-keepclassmembers类**.R$*{
公共静态;
}
-继续上课**$*
如何告诉dexguard不要删除此资源


提前感谢。

与dexguard creator交谈后,似乎只需使用以下方法即可实现:

-keepresources array/pictures
-keepresources array/a_*
希望其他人会觉得这很有用


干杯。

要删除未使用的资源,请尝试使用Android Lint工具。问题是不要删除未使用的资源,不要删除它们。我遗漏了什么吗?它对你有用吗?我也面临同样的问题,但在android studioYes中不为我工作。我也在用安卓工作室,但我这边有一些图片。dexguard收缩过程将删除部分文件。我在我的dexguard文件中保留了-keep class*.R-keep class**.R${;}#保留了R-keepclassmembers类**.R${;}-keepclassmembers类**.R{*},但没有任何用处。有些图像只是在显示,从这里很难确切地知道发生了什么。您可以联系dexguard程序员。这是一个非常有用的人。谢谢你的重播。我自己找到了答案。只需保留资源并删除缩减选项。