使 Dexguard 不删除未使用的资源
Making Dexguard to do not remove unused resources
我很难用 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.access0(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 creator 交谈后,似乎这可以通过使用来实现:
-keepresources array/pictures
-keepresources array/a_*
希望其他人会觉得这很有用
干杯。
我很难用 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.access0(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 creator 交谈后,似乎这可以通过使用来实现:
-keepresources array/pictures
-keepresources array/a_*
希望其他人会觉得这很有用
干杯。