1
我試圖將文本文件保存到SD卡但我得到Eacess(權限定義)錯誤。我的代碼看起來如下:嘗試將文件保存到SD卡時拒絕准入
try {
File myFile = new File(Environment.getExternalStorageDirectory().getPath() + "/myfile");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(text.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
"Done writing SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
我已經允許`
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />`
在Android清單
伊夫
一直在看有關這個問題的一些其他職位,但沒有解決它。
我失去了什麼?
更新我的清單文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.files"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.files.FilesActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
首先,發佈您的整個清單,以便我們確認您的<使用權限>在適當的位置。其次,不要使用連接來創建一個'File'對象 - 使用適當的'File'構造函數來獲取一個目錄'File'和文件名'String'。第三,不要使用'getBaseContext()' - 使用'this'。第四,不要使用'Toast'作爲唯一的調試輸出 - 使用'Log.e()',這樣你就可以看到完整的堆棧跟蹤,並確切地確定問題出現在哪條線上。 – CommonsWare 2013-04-10 22:03:53
@CommonsWare將清單文件添加到問題 – 2013-04-10 22:08:01
那麼'<使用權限>似乎是在正確的位置,偶爾會讓開發人員絆倒。接下來,如果您發佈整個堆棧跟蹤並指出源代碼中的哪一行正在生成異常,那將會非常有用。另外,如果你在模擬器上運行它,請確保你爲模擬器提供了一些外部存儲器(例如,爲SD卡尺寸填寫'32')。 – CommonsWare 2013-04-10 22:09:10