【问题标题】:Access generated Android R class from native code从本机代码访问生成的 Android R 类
【发布时间】: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


【解决方案1】:

访问您的 R 类并像任何其他类一样读取其字段。

【讨论】:

  • 真的很简单...感谢您的提示! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多