我正在努力使用dexguard使其不删除我以这种方式访问的资源:
int resourceId = getResources() . getIdentifier(“pictures”,“array”,getActivity() . getPackageName());
当我执行应用程序时,我得到以下异常:
java.lang.RuntimeException:无法启动活动android.content.res.Resources $ NotFoundException:android.app.ActivityThread.handleLaunchActivity上的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)中的数组资源ID#0x0( ActivityThread.java:2387)在Android.app.Handler.dispatchMessage(处理程序 . )的android.app.ActivityThread.access $ 800(ActivityThread.java:151)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303) . java:102)在android.app.Looper.loop(Looper.java:135)的android.app.ActivityThread.main(ActivityThread.java:5254)java. java.lang.reflect.Method.invoke(Native Method)位于com.android.internal.os.ZygoteInit.main的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)中的.lang.reflect.Method.invoke(Method.java:372)(ZygoteInit) .java:698)引起:android.content.res.Resources $ NotFoundException:数组资源ID#0x0
我在proguard-project.txt中使用了这个指令,这些指令是从堆栈溢出的一些相关问题中提取的,并没有解决任何问题:
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class **.R$*
如何告诉dexguard不要删除此资源?
提前致谢 .
1 回答
在与dexguard创建者交谈后,似乎只需使用以下方法即可实现:
希望别人会发现这个有用的
干杯 .