次の手順で、アプリケーションの内部ストレージ ディレクトリにファイルを書き込もうとしています。
1) アクティビティ クラスで「jni ライブラリ」を初期化する:
MyLib mylib = new MyLib();
2) アクティビティ クラスで getFilesDir を呼び出して、内部ストレージ パスを指定します。
mylib.setSavePath(getFilesDir());
3) 私のライブラリから mylib.save() メソッドを呼び出します。これは、C++ で次のことを行っています: 書き込みたいファイルを開きます:
fp = fopen(pathtotheinternalstorage+filename,"w");
if (!fp) {
SetError(XML_ERROR_FILE_NOT_FOUND, filename, 0);
return _errorID;
}
ファイル パスは正しいです: /data/data/com.myapp/files/myfile.xml しかし、fopen は失敗します。何が間違っているのかわかりません。私がいくつかのJavaコード(openFileOutput)で書くと、うまくいきます。
ご協力いただきありがとうございます。