【发布时间】:2011-11-08 17:41:49
【问题描述】:
我想知道是否有一种方法可以从本机代码访问 R 类属性,我需要它来读取一些生成的 ID,每次我对我的项目进行干净构建时可能会发生变化,我不想传递它们手动到原生部分。
编辑 正如@trashkalmar 所建议的,这里是解决方案:
static const char* const strClassName = "your/app/package/R$string";
clazz = env->FindClass(strClassName);
if (clazz == NULL) {
LOGE("Can't find class %s\n", strClassName);
return result;
}
jfieldID field = env->GetStaticFieldID(clazz , "you_string_resource", "I");
jint value = env->GetStaticIntField(clazz, field);
【问题讨论】:
-
请提供更多细节,您实际上要实现什么?如果您准确地分享您的问题,将很容易准确理解。
-
这是一个常见问题:我想访问所有 R 属性,而不必手动将其传递给本机部分,就像访问资产资源的方式一样。
标签: android resources java-native-interface native-code