簡體   English   中英

FIleNotFound打開失敗:EACCES(權限被拒絕)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM