我正在尝试查找资源ID的值。加载R类的第一步失败:
jclass rcl = (*env).FindClass("my/package/R$id");
rcl的值为NULL。我试过了
jclass rcl = (*env).FindClass("my/package/R/id");
也返回null。
查找MainActivity等其他类正常工作。使用NDK15。可能有什么不对?
javap的输出: http://siara.cc/output.txt
EDITED: 在将类名更改为我的/ package / R时,我在adb日志中找到以下行:
exception: java.lang.ClassNotFoundException: Didn't find class "my.package.R" on path: DexPathList[[zip file "/data/app/my.package-1/base.apk"],nativeLibraryDirectories=[/data/app/my.package-1/lib/arm, /system/fake-libs, /data/app/my.package-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib]]
答案 0 :(得分:0)
通过添加这样的proguard规则来解决问题:
-keep class my.package.R$* { *; }
似乎proguard也混淆了R类。