2011-05-28 149 views
8

因此,我打的最新的牆壁是試圖用我的程序寫入SD卡。我越來越:權限拒絕:...需要android.permission.WRITE_EXTERNAL_STORAGE

[2011-05-28 10:00:16 - LatinDictionary] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.joelman.latindictionary/.LatinDictionary } from null (pid=-1, uid=-1) requires android.permission.WRITE_EXTERNAL_STORAGE 

正如你可以從下面我看到清單,我添加的權限(我也試着將它添加到每一項活動中,都無濟於事)。我錯過了什麼?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.joelman.latindictionary" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.WRITE_EXTERNAL_STORAGE"> 
    <activity android:name=".LatinDictionary"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN"></action> 
<category android:name="android.intent.category.LAUNCHER"></category> 
</intent-filter> 
<intent-filter><action android:name="android.intent.action.SEARCH"></action> 
</intent-filter> 
</activity> 

<provider android:name="DictionaryProvider" android:authorities="com.joelman.latindictionary.DictionaryProvider"></provider> 
</application> 

</manifest> 

TIA, 喬爾

回答

6

把應用程序標記外的許可行,但內部的艙單一個

+0

這應該是正確的回答。另外,請注意,新的Android SDK版本包含一個'lint'工具,可以提前找到這類錯誤。 – 2012-01-10 03:16:01

16

它應該是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.joelman.latindictionary" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.WRITE_EXTERNAL_STORAGE"> 
    <activity android:name=".LatinDictionary"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN"></action> 
<category android:name="android.intent.category.LAUNCHER"></category> 
</intent-filter> 
<intent-filter><action android:name="android.intent.action.SEARCH"></action> 
</intent-filter> 
</activity> 

<provider android:name="DictionaryProvider" android:authorities="com.joelman.latindictionary.DictionaryProvider"></provider> 
</application> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
</manifest> 
+2

謝謝!注意:我還必須從節點中刪除權限才能運行。 – user568259 2011-05-28 22:43:44

+3

??兩者有什麼區別? 已被移動,但它最初位於元素內,而不在元素內,所以爲什麼順序或和<使用權限>問題(在xml中)? – Ribo 2013-09-25 21:41:06

+0

我把它放在''標籤之外 - 但它在文件的開頭。將權限移動到_ <_ application _>標籤之後使其可以正常工作。 – 2016-05-19 20:33:36