Java.lang.SecurityException: 权限拒绝:启动意图 { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]}

7

启动activity时出现错误,不幸的是,我认为这与项目没有严格相关,因为应用程序在genymotion模拟器上启动,但在物理设备上没有启动。

当我连接真实设备并运行adb devices时,会得到以下输出:

List of devices attached 
0009215b1eef4f  device

AndroidManifest.xml没有设置所需的权限,并且设备具有足够的API版本

祝好!


5
如果您在清单文件中添加了 android:exported="false",也可能会发生这种情况。 - Tushar Gogna
3个回答

10

只需添加:

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

AndroidManifest.xml文件中的标签中添加:

<activity>
希望能帮助到您。

正确的,如果我们想要测试特定活动的次数,运行指定的活动是没有帮助的...相反,使用您的解决方案并运行应用程序会更好:)感谢提示! - Bhuro

8
问题出在Android Studio的Launcher选择上。为了提高应用程序模块的测试速度,在运行属性中选择了与manifest.xml中指定的不同的Launcher Activity。奇怪的是,即使在模拟器上也能正常工作。
解决方法很简单,只需将Launcher更改为AndroidManifest.xml中设置的那个即可。

正确的,如果我们想要测试特定的活动多次,运行指定的活动是没有帮助的... 相反,使用你的解决方案并运行应用程序更好 :) 感谢提示! - Bhuro

1

正如@Tushar Gogna在评论中所说。

“如果你在清单文件中添加了android:exported="false",也会出现这种情况。”

我将其作为答案添加,因为对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接