안드로이드 응용 프로그램을 작성하려고합니다. 마녀는 opencv를 사용하여 키포인트와 디스크립터를 계산하고 저장합니다. 그러나 나는 cv : FileStorage에 문제가있다. 실제로 파일 경로를 네이티브 메서드를 던지고 있어요. javaside에 다른 파일을 저장하는데도 동일한 경로 (다른 파일 끝)가 사용됩니다.안드로이드에서 opencv FileStorage 네이티브를 사용합니다.
JNIEXPORT void JNICALL Java_com_..._CalcFeatures(JNIEnv* env, jobject, jlong addrGray, jstring location){
...
const char *nativeString = env->GetStringUTFChars(location, NULL);
string filepath=string(nativeString);
FileStorage fs(filepath, FileStorage::WRITE);
fs<<"frameCount"<<5;
fs.release();
...
}
로그 캣 출력 :
Fatal signal 11 (SIGSEGV) at 0x000009f4 (code=19), thread 23789
는 또한 ("/sdcard/test.xml"또는 "/storage/emulated/0/text.xml ')가 경로를 하드 코딩 tryed . "test.xml"을 파일 경로로 사용하는 경우 오류가 발생하지 않지만 휴대 전화 (HTC One)에서 파일을 찾을 수 없습니다.
조언이 있으십니까?
감사합니다.
UPDATE :
이 잘 작동하므로 FileStorage에 문제가 있습니다. opencv에서 xml/json 형식으로 구문 분석 할 수있는 다른 방법이 있습니까? 아마도 문자열을 결과로?
FILE* file = fopen(nativeString,"w+");
fputs("hello, world\n", file);
fclose(file);
앱에 대한 쓰기 권한을 얻었습니까? – berak
또한 magdically subdirs를 생성 할 것이라고 기대하지 마십시오. – berak
예, 쓰기 권한을 얻었습니다. subdir이 이미 존재하면 java part는 같은 dir에 다른 파일을 씁니다. – Reas0