在进行opencv4android开发时,我们往往需要在native环境下读取训练好的xml文件,为此我们可以采取以下的方法:
第一步:
在Java端新建 一个native函数
第二步:
在工程目录main下新建一个assets文件夹,并加入想要读取的文件到里面:
第三步:
在native端加入如下代码:
AAssetManager* mgr = AAssetManager_fromJava(env, am);
if(mgr==NULL)
{
LOGI(" %s","AAssetManager==NULL");
return;
}
/*获取文件名并打开*/
const char*filename = env->GetStringUTFChars(filename_,0);
AAsset* asset = AAssetManager_open(mgr, filename,AASSET_MODE_UNKNOWN);
env->ReleaseStringUTFChars(filename_, filename);
if(asset==NULL)
{
LOGI(" %s","asset==NULL");
return;
}
/*获取文件大小*/
off_tbufferSize = AAsset_getLength(asset);
LOGI("file size : %d\n",bufferSize);
char*buffer=(char*)malloc(bufferSize+1);
buffer[bufferSize]=0;
intnumBytesRead = AAsset_read(asset, buffer, bufferSize);
LOGI("%s",buffer);
free(buffer);
/*关闭文件*/
AAsset_close(asset);
第五步: