Android : Permission Denied Error when changing Launcher Activity

家住魔仙堡 提交于 2020-01-04 02:54:18

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!