最近升级项目到android15,一开始遇到这个报错,以为是广播的问题,因为当时在Log中发现这个的报错
- One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be
这条报错的解决方案依据 google开发者android14 关于这条的 原文:
- Apps and services that target Android 14 and use context-registered receivers are required to specify a flag to indicate whether or not the receiver should be exported to all other apps on the device: either RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED, respectively. This requirement helps protect apps from security vulnerabilities by leveraging the features for these receivers introduced in Android 13.
但是之前升级不在主分支上,那个分支解决后切换主分支后安装run 日志模块中又报这个日志
-Exception occurred while executing 'start':
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.asus.rogforum/com.zhiyicx.thinksnsplus.modules.guide.GuideActivity } from null (pid=15320, uid=2000) not exported from uid 10219
at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1270)
at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1266)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:901)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1401)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1346)
at com.android.server.am.ActivityManagerService.startActivityAsUserWithFeature(ActivityManagerService.java:3532)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:800)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:246)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:10971)
at android.os.Binder.shellCommand(Binder.java:1230)
at android.os.Binder.onTransact(Binder.java:1043)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5785)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2962)
at android.os.Binder.execTransactInternal(Binder.java:1505)
at android.os.Binder.execTransact(Binder.java:1444)
然后我找到主界面偶然看到exported 为false,改为true后尝试运行了一下,纳尼,竟然成功安装了,以后还是得仔细看日志啊,里面关键信息 not exported from 是 要敲脑袋得