문제

내 프로그램에서는 화면에 바로 가기를 추가합니다. 화면에 아이콘이 잘 나오지만 탭하면 다음과 같습니다.

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

문제를 알고 있습니까? 감사,
이삭

도움이 되었습니까?

해결책 2

그것을 알아 냈고, 이것을 추가했습니다 <activity> 활동 태그 :

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

다른 팁

실수로 내 행위에서 활동 중 하나에 대한 활동 태그를 복제했을 때 이런 일이 발생했습니다. 응용 프로그램 섹션에 이와 같은 것이있었습니다.

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

두 번째 활동 태그를 제거하면 상황이 정상적으로 작동하기 시작했습니다.

이와 같은 것이 효과가 있어야합니다.

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

매니페스트의 활동 선언 내부.

나도이 문제에 도달했으며 활동이 다른 프로세스에 노출되지 않았기 때문입니다. Exported = "True"속성을 내 매니페스트의 활동 태그에 추가해야했습니다.

보다 http://developer.android.com/guide/topics/manifest/activity-element.html#exported 자세한 내용은.

나는 이것을 개인적으로 달성하지 못했지만 약간의 연구를했고 다음을 발견했습니다.

분명히 앱을 호출하려고 시도하거나 앱이 의도를 만들고 UID가 동일하지 않은 의도의 활동을 시작하도록 호출하는 경우 분명히.

ActivityManagerserver.java에는 아래에 판단이 있습니다.

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

나는 이것에 대해 약간의 테스트를하고 테스트 응용 프로그램에서 이것을 재현하고 추가 피드백을 제공 할 수 있는지 확인할 것입니다.

의도를 통해 공개적으로 노출 된 활동을 호출하려고하는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top