Android:更改启动器活动时权限被拒绝错误

时间:2012-06-15 18:24:32

标签: android android-intent android-manifest android-activity android-xml

我有一个我试图启动的Android应用程序,它给了我错误

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

当我尝试更改清单中的启动器活动时出现此错误。当我在模拟器上启动它时,我也没有收到此错误,但是当我尝试在设备上启动它时。我已经在3个不同的Android设备上尝试了它,它三次都给出了同样的错误。这是我的清单代码:

<?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"/>

最初,Launcher Activity是名为Main的活动。然后我创建了一个名为MainActivity的新活动,并将其作为启动器类。

4 个答案:

答案 0 :(得分:7)

作为stated by Jomia

  

你看到的java.lang.SecurityException是因为你可能   输入指向同一活动的两个条目。删除第二个和   你应该好好去。

最后将主要活动更改为清单中的MainActivity清除项目后从 项目 - &gt;清理... ,然后再在设备上运行

答案 1 :(得分:4)

您应尝试使用导出属性在AndroidManifest.xml中标记MainActivity。像这样:

<activity android:exported="true" android:name=".MainActivity" android:screenOrientation="portrait" android:label="MainActivity">

答案 2 :(得分:1)

null中通常需要SecurityException表示不导出组件。 有可能不是你的问题。当活动具有<intent-filter>标记时,会自动导出活动。我推荐

  • 清理项目
  • 构建
  • 设备上的完全卸载应用
  • 重新安装

答案 3 :(得分:0)

如果您正在使用GIT:
删除整个存储库文件夹并使用您的git-server重新同步。