我很难使用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) at java.lang.reflect.Method.invoke(Native Method) 在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不要删除此资源?
提前致谢。
答案 0 :(得分:2)
在与dexguard创建者交谈后,似乎可以通过使用:
来实现-keepresources array/pictures
-keepresources array/a_*
希望其他人能找到这个有用的
干杯。