Pergunta

No meu programa adiciona um atalho para a tela. Eu obter o ícone sobre a multa tela, mas quando eu toque nele, eu recebo:

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

Você sabe o problema? Obrigado,
Isaac

Foi útil?

Solução 2

Descobri-lo, adicionado este sob tag <activity> de atividade:

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

Outras dicas

Eu tinha algo como isso acontecer quando eu tinha acidentalmente duplicado a tag de atividade para uma das minhas atividades no meu manifesto. Eu tinha algo como este em minha seção do aplicativo.

<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 eu removi o segundo tag de atividade, as coisas começaram a trabalhar normalmente.

Algo como isto deve funcionar:

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

dentro da declaração Atividade no manifesto.

Eu corri para este problema também, e descobriu-se que era porque a atividade não foi exposto a outros processos. Eu tive que adicionar o android: exportados = "true" atributo para a marca de atividade no meu manifesto.

http://developer.android.com/guide /topics/manifest/activity-element.html#exported para mais informações.

Eu não executar para esse pessoalmente, mas eu fiz algumas pesquisas e descobrimos o seguinte.

Aparentemente o que está tentando invocar o seu aplicativo ou se o seu aplicativo tem uma chamada para criar uma intenção e iniciar uma atividade de alguma intenção UID não é o mesmo.

Em ActivityManagerServer.java existem abaixo julgamento nele.

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

Vou fazer alguns testes sobre isso e ver se eu posso reproduzir isso em um aplicativo de teste e fornecer qualquer feedback adicional.

Certifique-se de que você está tentando somente invocar atividades expostas publicamente através de quaisquer intenções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top