2009-03-02 15 views
9

En mi programa, agrega un acceso directo a la pantalla. Me sale bien el icono en la pantalla, pero cuando lo toco obtengo:error de permiso de acceso directo Android pantalla

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 

¿Conoces el problema? Gracias,
Isaac

Respuesta

9

lo descubrió, añade esto bajo <activity> etiqueta de la actividad:

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

¿Podría mostrarnos el Mainfest completo (fijo)? –

2

No me he encontrado con esto personalmente pero investigué un poco y encontré lo siguiente.

Aparentemente lo que sea que intente invocar su aplicación o si su aplicación tiene una llamada para crear un intento y comenzar una actividad de alguna intención, el UID no es el mismo.

En ActivityManagerServer.java, se encuentran a continuación juicio.

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

Voy a hacer algunas pruebas sobre esto y ver si puedo reproducir esto en una aplicación de prueba y proporcionar comentarios adicionales.

Asegúrate de que solo intentas invocar actividades expuestas públicamente a través de cualquier intento.

5

Algo como esto debería funcionar:

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

dentro de la declaración de la actividad en el manifiesto.

10

Tuve algo así cuando accidentalmente dupliqué la etiqueta de actividad para una de mis actividades en mi manifiesto. Tenía algo así en mi sección de aplicaciones.

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

Cuando eliminé la segunda etiqueta de actividad, las cosas comenzaron a funcionar normalmente.

+1

Esto también corrigió mi error cuando recibí "La aplicación no está instalada en este teléfono". Estaba siguiendo algunos ejemplos de un libro y no noté mi problema de copiar y pegar con la actividad duplicada. ¡buena atrapada! (Sería aún más agradable para: actividad duplicada en manifiesto) –

Cuestiones relacionadas