2009-03-02 17 views
9

मेरे प्रोग्राम में यह स्क्रीन पर एक शॉर्टकट जोड़ता है। मुझे स्क्रीन पर आइकन ठीक है, लेकिन जब मैं इसे टैप करता हूं, तो मुझे मिलता है:एंड्रॉइड होमस्क्रीन शॉर्टकट अनुमति त्रुटि

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

क्या आप हमें पूर्ण (निश्चित) मेनफेस्ट दिखा सकते हैं? –

2

मैंने व्यक्तिगत रूप से इसमें भाग नहीं लिया है लेकिन मैंने कुछ शोध किया है और निम्नलिखित पाया है।

जाहिर है जो भी आपके ऐप को आमंत्रित करने का प्रयास कर रहा है या यदि आपके ऐप के पास कोई इरादा बनाने के लिए कॉल है और कुछ इरादे की गतिविधि शुरू करने के लिए यूआईडी समान नहीं है।

गतिविधि मैनेजर सर्वर.जेवा में इसमें निर्णय नीचे दिए गए हैं।

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; 
    } 

मैं इस पर कुछ परीक्षण करते हैं और यदि मुझे परीक्षण आवेदन में यह पुन: पेश और कोई अतिरिक्त फ़ीडबैक प्रदान कर सकते हैं देखने के लिए जा रहा हूँ।

सुनिश्चित करें कि आप केवल किसी भी इरादे से सार्वजनिक रूप से उजागर गतिविधियों का आह्वान करने का प्रयास कर रहे हैं। प्रकट में गतिविधि घोषणा के अंदर

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

:

5

कुछ इस तरह काम करना चाहिए।

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

यह सिर्फ मेरी त्रुटि को ठीक करता है जब मुझे "इस फोन पर एप्लिकेशन इंस्टॉल नहीं है"। मैं एक किताब से कुछ उदाहरणों का पालन कर रहा था और डुप्लिकेट गतिविधि के साथ मेरी प्रतिलिपि और पेस्ट समस्या को नोटिस नहीं किया। अच्छा पकड़ा! (इसके लिए भी अच्छा होगा: प्रकट में डुप्लिकेट गतिविधि) –

4

मैं भी इस समस्या में भाग गया, और यह पता चला क्योंकि यह गतिविधि अन्य प्रक्रियाओं के संपर्क में नहीं थी। मुझे एंड्रॉइड जोड़ना पड़ा: मेरे मैनिफेस्ट में गतिविधि टैग में निर्यात = "सत्य" विशेषता।

अधिक जानकारी के लिए http://developer.android.com/guide/topics/manifest/activity-element.html#exported देखें।

संबंधित मुद्दे