[英]FIleNotFound open failed: EACCES (Permission denied)
當我嘗試寫入“/ mnt / sdcard / report /”時,我在Android上遭遇“開放失敗:EACCES(權限被拒絕)”。 我的第一步是創建“報告”文件夾,該文件夾不起作用。 然后我嘗試編寫拋出上述異常的內容。 我已將<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
為應用程序標記的對等項(在...之外)。 我正在嘗試在出現錯誤時在模擬器上運行JUnit檢測測試。 有任何想法嗎? 代碼如下。
if (mReportDir == null) {
if (mContext.getFilesDir() != null) {
mOutputStream = mContext.openFileOutput(fileName, 0);
} else {
mOutputStream = mTargetContext.openFileOutput(fileName, 0);
}
} else {
File f = new File(mReportDir);
if (!f.exists()) {
f.mkdirs();
}
mOutputStream = new FileOutputStream(new File(mReportDir, fileName));
}
mReportDir等於“/ mnt / sdcard / report”,fileName等於“junit-report.xml”,f.mkdirs返回false我相信並且永遠不會創建dir。 我想知道為什么我被拒絕了。 我正在嘗試重用自定義的JUnit Test運行器。
我在avd設置中添加了hw.sdCard = yes。 啟動I shell后輸入mount:
~$ adb shell
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,nosuid,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
none /acct cgroup rw,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
我再次以編程方式從Ant腳本啟動AVD。 我可以通過編程方式安裝SD卡嗎?
發現問題了! 當我創建AVD時,我從未指定過SD卡的大小。 我編輯並設置了512MiB的大小,現在它是可寫的! 謝謝所有回復的人! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.