最近我在使用JNI和C ++的Android上做了一些事情
我想用cv :: imwrite()将结果写入android文件系统,以检查我是否正确,但是没有写入文件。我也尝试写文本文件,再次失败。
这是我的代码的一部分。我有什么不对的吗?谢谢你的帮助!
JNIEXPORT void JNICALL Java_com_project_NativeLibs_test(JNIEnv *env, jclass clazz
{
LOGV("test CALLED");
std::string file1, file2, outFile;
file1 = "/sdcard/test_data/images/box.pgm";
file2 = "/sdcard/test_data/images/scene.pgm";
outFile = "/sdcard/output_data/JNI_after.png";
cv::Mat objectImg = cv::imread(file1, cv::IMREAD_GRAYSCALE);
cv::Mat sceneImg = cv::imread(file2, cv::IMREAD_GRAYSCALE);
cv::Mat out;
// ... some Mat process get output to Mat out
cv::imwrite(outFile, out);
std::ofstream filetest;
filetest.open("test.txt");
filetest<<"writing from JNI";
filetest.close();
LOGV("Done Finally");
}
答案 0 :(得分:1)
也许你需要添加这个:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
自: Android: OpenCV: imwrite always returns false and fails to write