我在使用dexguard时遇到了麻烦,使其无法删除以这种方式访问​​的资源:


  int resourceId = getResources()。getIdentifier(“ pictures”,“ array”,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$*


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

提前致谢。

最佳答案

在与dexguard Creator交谈之后,似乎可以通过使用以下方法来实现:

-keepresources array/pictures
-keepresources array/a_*


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

干杯。

10-07 13:04
查看更多