【问题标题】:Android : Permission Denied Error when changing Launcher ActivityAndroid:更改启动器活动时权限被拒绝错误
【发布时间】:2012-06-15 18:24:31
【问题描述】:

我有一个我正在尝试启动的 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 设备上尝试过,它都给出了同样的错误 3 次。这是我的清单代码:

<?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 的 Activity。然后我创建了一个名为 MainActivity 的新活动并将其作为启动器类。

【问题讨论】:

  • 您的日志猫中是否有围绕权限拒绝的任何行说明您的活动中的哪一行是问题?或者哪个权限导致了异常?通常这些内容会列在您粘贴的摘录附近的日志中。
  • 我认为您只共享了清单的一部分?共享整个清单代码
  • 你能提供 MainActivity 的第一行,它就像“package ......;”吗? ......
  • 您的清单缺少 activity 标记中的 android:exported="true" 指令。注意:每当您指定intent-filter 指令时,您还必须考虑android:exported 指令。

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


【解决方案1】:

作为stated by Jomia:

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

最后在清单中将 Main Activity 更改为 MainActivity 之后,在设备上运行之前从 Project->Clean... 清除您的项目

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      通常,SecurityException 中需要 null 表示该组件未导出。 有可能不是您的问题。 Activity 具有&lt;intent-filter&gt; 标签时会自动导出。我推荐

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-27
          • 1970-01-01
          • 2013-12-17
          • 2020-08-21
          • 2016-05-04
          • 1970-01-01
          • 2016-10-03
          • 2020-08-09
          相关资源
          最近更新 更多