问题
I have an android app that I am trying to launch and it gives me the error
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.hoosierag/.MainActivity } from null (pid=32395, uid=2000) not exported from uid 10125
I get this error when I try to change the launcher activity in the manifest. Also I dont get this error when I launch it on the emulator, but when I try to launch it on a device. I have tried it on 3 different android devices and it gave the same error all three times. Here is my manifest code :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hoosierag"
android:versionName="1.11" android:versionCode="4">
<uses-sdk android:minSdkVersion="3"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
<activity android:name=".MainActivity" android:screenOrientation="portrait"
android:label="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Main" android:screenOrientation="portrait"/>
<activity android:name="News" android:screenOrientation="portrait"/>
<activity android:name="Audio" android:screenOrientation="portrait"/>
Initially the Launcher Activity was the activity called Main. I then created a new activity called MainActivity and made that the launcher class.
回答1:
As stated by Jomia:
The
java.lang.SecurityException
you are seeing is because you may enter two entries pointing to same activity. Remove the second one and you should be good to go.
and finally after changing Main activity to MainActivity in manifest Clean your Project from Project->Clean... before running on device
回答2:
You should try to mark MainActivity in your AndroidManifest.xml with attribute exported. Like this:
<activity android:exported="true" android:name=".MainActivity" android:screenOrientation="portrait" android:label="MainActivity">
回答3:
Frequently, requires null
in a SecurityException
means that the component is not exported.
There is a possibility that may not be a your problem. Activity is automatically exported when it has an <intent-filter>
tag. I recommend
- clean the project
- build
- full uninstall app from device
- re-install
回答4:
If you are using GIT:
Delete the whole repository folder and resync it with your git-server.
来源:https://stackoverflow.com/questions/11056214/android-permission-denied-error-when-changing-launcher-activity