Android JNI获取资产文件路径

Android JNI获取资产文件路径,android,java-native-interface,opencv3.0,android-assets,Android,Java Native Interface,Opencv3.0,Android Assets,我正在尝试将两个带有初始化数据的.xml文件添加到我的Android应用程序的APK中。在JNI C++代码中,我想得到文件的路径,这样我就可以打开和读取文件。 我真的需要路径,因为文件是通过访问文件的OpenCV函数打开的 我已经有了这个: (java文件) (cpp文件) 现在如何提取文件的两条路径?这些文件称为classification.xml和images.xml,位于/src/assets文件夹中 现在如何提取文件的两条路径 没有指向这些文件的路径。资产是开发机器上的文件。它们不是安

我正在尝试将两个带有初始化数据的.xml文件添加到我的Android应用程序的APK中。在JNI C++代码中,我想得到文件的路径,这样我就可以打开和读取文件。 我真的需要路径,因为文件是通过访问文件的OpenCV函数打开的

我已经有了这个:

(java文件)

(cpp文件)

现在如何提取文件的两条路径?这些文件称为classification.xml和images.xml,位于/src/assets文件夹中

现在如何提取文件的两条路径

没有指向这些文件的路径。资产是开发机器上的文件。它们不是安卓设备文件系统上的文件。相反,它们是APK文件中的条目

你的选择是:

  • 了解如何调整OpenCV以使用Java
    InputStream
    String
    或其他内容(以便Java代码仍然可以正常使用资产),或

  • 使用Java在本地文件系统上创建这些文件的副本(例如,
    getFilesDir()
    ),以便OpenCV可以使用这些副本

现在如何提取文件的两条路径

这些文件没有路径。资产是开发机器上的文件。它们不是Android设备文件系统上的文件。而是APK文件中的条目

你的选择是:

  • 了解如何调整OpenCV以使用Java
    InputStream
    String
    或其他内容(以便Java代码仍然可以正常使用资产),或

  • 使用Java在本地文件系统上创建这些文件的副本(例如,
    getFilesDir()
    ),以便OpenCV可以使用这些副本

public native void assetLoad(AssetManager mgr);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vision_camera);

    assetManager = getResources().getAssets();
    assetLoad(assetManager);
}
JNIEXPORT void JNICALL
Java_primalpond_com_sensibleopencv_vision_1camera_assetLoad(JNIEnv *env, jobject instance,
                                                        jobject mgr) {

    AAssetManager *assMgr = AAssetManager_fromJava(env, mgr);


}