NDK读取本地文件

在进行opencv4android开发时,我们往往需要在native环境下读取训练好的xml文件,为此我们可以采取以下的方法:

第一步:

在Java端新建 一个native函数

在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);

第五步:

报错,参考文章NDK读取本地文件时,提示AAssetManager_fromJava未定义

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容