美文网首页
NDK读取本地文件

NDK读取本地文件

作者: 娃嘻嘻 | 来源:发表于2017-05-17 20:55 被阅读0次

在进行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未定义

相关文章

网友评论

      本文标题:NDK读取本地文件

      本文链接:https://www.haomeiwen.com/subject/ylhjxxtx.html