我正在尝试将两个带有初始化数据的.xml文件添加到我的Android应用的APK中。在JNI C ++代码中,我想获取文件的路径,以便我可以打开并读取文件。
我真的需要这个路径,因为文件是用OpenCV函数打开的,它可以访问文件。
我已经有了这个:
(java文件)
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);
}
(cpp文件)
JNIEXPORT void JNICALL
Java_primalpond_com_sensibleopencv_vision_1camera_assetLoad(JNIEnv *env, jobject instance,
jobject mgr) {
AAssetManager *assMgr = AAssetManager_fromJava(env, mgr);
}
现在如何提取文件的两个路径?这些文件名为classifications.xml和images.xml,位于/ src / assets文件夹中
答案 0 :(得分:3)
现在如何提取文件的两个路径?
文件没有路径。资产是开发计算机上的文件。它们不是Android设备文件系统上的文件。相反,它们是APK文件中的条目。
您的选择是:
了解如何使OpenCV适应Java InputStream
,String
或其他内容(因此您的Java代码仍然可以正常使用资源),或者
使用Java在本地文件系统上制作这些文件的副本(例如getFilesDir()
,因此OpenCV可以使用这些副本。