2009-03-02 5 views
9

Nel mio programma aggiunge un collegamento allo schermo. Ottengo l'icona sullo schermo bene, ma quando lo tocco, ottengo:Errore permesso di collegamento a schermo condiviso 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 

Conosci il problema? Grazie,
Isaac

risposta

9

capito, ha aggiunto questo sotto <activity> tag di attività:

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

Potrebbe mostrarci il completo (fisso) Mainfest? –

2

Non mi sono imbattuto in questo personalmente ma ho fatto qualche ricerca e ho trovato quanto segue.

Apparentemente qualunque cosa stia tentando di invocare la tua app o se la tua app ha una chiamata per creare un intento e avviare un'attività di qualche intento l'UID non è la stessa.

In ActivityManagerServer.java ci sono sotto giudizio in esso.

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

ho intenzione di fare qualche test su questo e vedere se riesco a riprodurre questo in un'applicazione di test e di fornire qualsiasi ulteriore informazione.

Assicurati di provare a invocare attività pubblicamente esposte attraverso qualsiasi intento.

5

Qualcosa del genere dovrebbe funzionare:

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

all'interno della dichiarazione di attività nel manifesto.

10

Ho avuto qualcosa di simile quando ho duplicato accidentalmente il tag attività per una delle mie attività nel mio manifest. Ho avuto qualcosa di simile nella mia sezione di applicazione.

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

Quando ho rimosso il secondo tag di attività, le cose hanno iniziato a funzionare normalmente.

+1

Questo ha corretto anche il mio errore quando ho ricevuto "L'applicazione non è installata su questo telefono". Stavo seguendo alcuni esempi da un libro e non ho notato il mio problema di copia e incolla con l'attività duplicata. bella presa! (Sarebbe anche più bello per: attività duplicate in manifest) –