我正在尝试从我的本机代码中读取一个简单的文本文件.
在我的活动中,我正在创建资产管理器:assetManager = getAssets();
然后我将assetManager传递给我的本机方法(如本机音频示例中所示):
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
AAsset* asset = AAssetManager_open(mgr, "file.txt", AASSET_MODE_UNKNOWN);
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
off_t start, length;
int fd = AAsset_openFileDescriptor(asset, &start, &length);
Run Code Online (Sandbox Code Playgroud)问题是fd小于0 !!!
任何人都可以帮忙吗?
AAsset_openFileDescriptor将仅适用于未压缩的文件(如mp3,jpg,png等...).它写在文档(asset_manager.h头文件)中:
/**
* Open a new file descriptor that can be used to read the asset data.
*
* Returns < 0 if direct fd access is not possible (for example, if the asset is
* compressed).
*/
int AAsset_openFileDescriptor(AAsset* asset, off_t* outStart, off_t* outLength);
Run Code Online (Sandbox Code Playgroud)
使用AAsset_read或AAsset_getBuffer.
| 归档时间: |
|
| 查看次数: |
10084 次 |
| 最近记录: |