如何使用Android NDK从资产/资源加载文件

时间:2019-06-04 15:50:42

标签: java android c++ android-ndk oculusgo

我正在尝试从Android NDK中的C ++加载文件(如果相关,我正在为Oculus GO开发)。

更具体地说,我的项目建立在一个示例项目上,我不了解Java,C ++和android NDK如何协同工作的所有细节,但是我仅有的Java代码在MainActivity文件中。 java:

public class MainActivity extends android.app.NativeActivity {

    /** Load jni .so on initialization */
    static {
        System.loadLibrary( "vrapi" );
        System.loadLibrary( "my_library" );
    }
}

然后,我所有其他代码都在C / C ++中,并且编译为上述Java代码加载的库(我的Android.mk中有LOCAL_MODULE:= my_library)

然后我的C ++代码实现一个函数

#include <android_native_app_glue.h>

void android_main(struct android_app * app){
    ...
}

这是我所有代码所驻留的主要功能。

现在,我想从C ++代码中某处的资产或资源目录中加载文件。我该怎么办?

我知道类似的问题(How do I add a file to an Android project and then load it using the NDK),答案给出了一些我应该添加的Java代码,但我不知道将Java代码放在哪里,它包括一些对象(上下文和mContext)未在我的Java文件中定义,因此仅从该答案中复制代码无效。

0 个答案:

没有答案