Domanda

Nel mio programma aggiunge un collegamento allo schermo. Ottengo l'icona sullo schermo bene, ma quando la tocco ottengo:

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

È stato utile?

Soluzione 2

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

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

Altri suggerimenti

Ho avuto qualcosa del genere quando ho duplicato accidentalmente il tag attività per una delle mie attività nel mio manifest. Ho avuto qualcosa di simile nella mia sezione dell'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 attività, le cose hanno iniziato a funzionare normalmente.

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

Ho riscontrato anche questo problema e si è scoperto che l'attività non era esposta ad altri processi. Ho dovuto aggiungere Android: exported = & Quot; true & Quot; attributo al tag attività nel mio manifest.

Vedi http://developer.android.com/guide /topics/manifest/activity-element.html#exported per ulteriori informazioni.

Non mi sono imbattuto in questo personalmente ma ho fatto alcune ricerche 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 è lo stesso.

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

Proverò su questo e vedrò se riesco a riprodurlo in un'applicazione di test e fornirò ulteriori feedback.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top