提问人:terdev 提问时间:5/30/2023 更新时间:5/30/2023 访问量:123
无法在 Android Studio 中打开外部文件
Can't open external files in Android Studio
问:
我想在 Android Studio 中使用 NDK 在 C++ 中打开一个文件。外部存储目录位于 ,因此我使用以下 C++ 代码打开该文件:.npy
/storage/emulated/0/
#include <stdio.h>
#include <jni.h>
extern "C" JNIEXPORT jint JNICALL
Java_com_example_demo_MainActivity_getInt( JNIEnv* env, jobject /* this */) {
std::string fname = "/storage/emulated/0/data.npy";
FILE* fp = fopen(fname.c_str(), "rb");
if(!fp) throw std::runtime_error("npy_load: Unable to open file "+fname);
return 0;
}
我在 中指定了以下外部存储访问权限:AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- more stuff -->
</manifest>
但是,我无法正确读取文件:
terminating with uncaught exception of type std::runtime_error: npy_load: Unable to open file /storage/emulated/0/data.npy
我无法弄清楚为什么这个错误不断发生,因为我对目录有读/写访问权限。
答: 暂无答案
评论