我有一个使用 android-ndk 编译的本机共享库
C API 函数之一是:
int load_config(const char *fn, Config *cfg)
我已经用 JNI 包装了函数并成功地从 Java 调用它,例如
Config cfg = new Config();
my_shared_lib.load_config("test.gcf", cfg);
System.out.println("cfg.rx_id = " + cfg.getRx_id());
这将打印来自 Config 数据结构的预期值
但是现在我已经将它移植到了 Android 模拟器上,我很困惑如何处理代表配置数据文件名的字符串
我尝试将 test.gcf 添加到 $(PROJECT)/assets 目录然后:
Config cfg = new Config();
my_shared_lib.load_config("assets/test.gcf", cfg);
outputText.append("cfg.rx_id = " + cfg.getRx_id());
但这不起作用,即未输出 Config 数据结构的预期值(我只是得到一个空白)
换句话说,当您的本机库函数需要文件名作为参数时,您会怎么做?