2009-03-02 102 views
9

在我的程序中,它向屏幕添加了一個快捷方式。我得到的畫面精美的圖標,但是當我點擊它,我得到:Android主屏幕快捷方式權限錯誤

03-01 20:00:29.410: ERROR/AndroidRuntime(796): java.lang.SecurityException: Permission Denial: starting Intent { data=http://www.example.com/ flags=0x14000000 comp={com.isaacwaller.example/com.isaacwaller.example.ExampleCut} } from ProcessRecord{435c7398 796:android.process.acore/10005} (pid=796, uid=10005) requires null 

你知道這個問題?謝謝,
艾薩克

回答

9

想通了,下<activity>標籤活動的增加這樣的:

<intent-filter> 
<action android:name="android.intent.action.MAIN"></action> 
</intent-filter> 
+0

您能告訴我們完整(固定)的Mainfest嗎? – 2009-05-10 00:17:18

2

我沒有遇到這個人,但我做了一些研究,發現以下內容。

顯然無論是試圖調用你的應用程序,或者如果你的應用程序有一個調用來創建一個intent並啓動一些intent的活動,UID是不一樣的。

在ActivityManagerServer.java中有以下判斷。

int checkComponentPermission(String permission, int pid, int uid, int reqUid) 
// If the target requires a specific UID, always fail for others. 
    if (reqUid >= 0 && uid != reqUid) { 
     return PackageManager.PERMISSION_DENIED; 
    } 

我打算做一些這方面的測試,看看我是否能重現這一在測試應用程序,並提供其他反饋。

確保您只是試圖通過任何意圖調用公開曝光的活動。

5

像這樣的東西應該工作:

<intent-filter> 
    <action android:name="com.example.Project.Action"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

在清單中的活動聲明中來。

10

當我不小心複製清單中某個活動的活動標記時,發生了類似的情況。我在應用程序部分有類似的東西。

<activity android:name=".ConventionHome" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name="ConventionHome"></activity> 

當我刪除第二個活動標籤時,事情開始正常工作。

+1

這只是解決了我的錯誤,當我得到「應用程序未安裝在此手機上」。我正在關注一本書中的一些示例,並沒有注意到我的複製和粘貼問題與重複的活動。很好的接收! (甚至更好:清單中的重複活動) – 2010-12-20 17:58:46

相關問題