【问题标题】:Unable to read from external storage using NDK无法使用 NDK 从外部存储读取
【发布时间】:2013-03-27 10:36:21
【问题描述】:

我正在使用 NDK 从 Music 文件夹加载用户声音文件。 我从 ACTION_PICK 意图中获取了我的文件路径,它看起来像这样:

/storage/emulated/0/Music/My Narration - 0007.wav

我在调试模式下没有任何问题,但在发布时失败:无法打开文件。

我也在使用 JNI 使用 Java 从外部存储加载图像文件,没有问题。

我的清单文件中有此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我也试过添加这个,但是没有效果:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

要从 fcntl.h 打开我正在使用 open() 的文件:

open(filePath, O_RDONLY, S_IRUSR | S_IWUSR  | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);

为什么它在 debug 模式下工作,但在 release 模式下不工作?

【问题讨论】:

  • 不知道,但您是否尝试使用 fopen 代替?

标签: android android-ndk


【解决方案1】:

看来我找到了问题的根源。 该应用的调试和发布版本使用由#define 标志控制的不同代码,并且发布版本存在错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多