2011-11-20 4 views
0

Android 앱에서 NDK를 사용하여 fopen, fclose 등을 사용하여 로컬 파일에 액세스하고 있습니다. 내 앱이 HellloJNI (제공되는 예)로 시작되었습니다. 파일에 액세스하는 것은 실제로 처음에 작동했습니다. 내가 사용한 파일 경로는 "/data/data/com.example.hellojni/files/Test.txt"입니다.Android NDK 파일 액세스 (패키지 이름 문제)

당연히 HelloJNI라는 앱을 영원히 원하지 않기 때문에 AndroidManifest.xml의 패키지 이름 (manifest/@ package)을 com.example.hellojni에서 com.example.mytest으로 변경했습니다. 따라서 다른 파일 경로 인 "/data/data/com.example.mytest/files/Test.txt"을 사용합니다. 그러나 이제는 성공한 fopen("[...]", "w+")에 대한 동일한 호출이 실패합니다.

아이디어가 있으십니까?

답변

0

/data/data/com.example.mytest 아래에 files 폴더를 수동으로 생성 한 후에 작동합니다. 어떤면에서는 분명하지만, 아직 완전히 이해하지 못했습니다. /data/data/com.example.hellojni 아래에 files 폴더를 명시 적으로 만들지 않았기 때문입니다. 그래서 그 사람은 어디에서 왔습니까?

편집 : 그 신비

+0

어디 당신이있는 test.txt 파일을 배치 않았다 :-) 해결되도록

은 분명히 getFilesDir를 호출

는 암시 적으로 Files 폴더를 만듭니다? /data/data/com.example.mytest/files/에 푸시 했습니까? test.txt를 /data/data/com.example.mytest/에 넣은 후에도 /data/data/com.example.mytest/test.txt에 액세스 한 후에 오류가 발생했기 때문에이 질문을합니다. – re3el

+0

내가 기억하는 한 (이것은 4 년 전이었습니다) 방금 폴더를 만들었습니다. 파일은 ADB에서 푸시되지 않은 앱에 의해 작성되었습니다. 따라서 파일을 푸시하는 경우 파일 소유자가 잘못되었을 수 있습니다. – Dabbler