单击应用程序图标时出现“未找到应用程序”Toast消息

"App not found" Toast message when click on the App icon

提问人:KZoNE 提问时间:12/23/2021 更新时间:4/4/2022 访问量:523

问:

我正在将非常旧的项目更新到最新的 SDK 版本 32。更新 IDE 时,如果应用需要以 Android 12 及更高版本为目标平台,则需要为相应组件定义了 intent 过滤器时指定一个显式值。因此,我为所有活动添加导出的标签,为“启动活动”设置值 true,为其他活动和服务设置值为 false。android:exported

android:exported="true"

添加下面的 Gradle 脚本。

compileSdkVersion 31
buildToolsVersion '32.0.0'
defaultConfig {
    applicationId "xx.xxxyyyxxx.xxx"
    minSdkVersion 21
    targetSdkVersion 31
    versionCode 81
    versionName "0.0.81"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

更新后,应用程序图标是可见的,但当我单击它时,应用程序不会打开。单击它时,它会显示 toast 消息“找不到应用程序”。对此有什么想法吗?我该如何解决这个问题?

安卓 android-gradle-plugin android-manifest android-12

评论


答:

0赞 Tota Madhu 12/24/2021 #1
<activity android:name=".MainActivity"
        android:exported="false"> <---- set the value false for Launching 
activity ,Other Activities --android:exported="true"

评论

2赞 Jeremy Caney 12/25/2021
请记住,Stack Overflow 不仅旨在解决眼前的问题,还旨在帮助未来的读者找到类似问题的解决方案,这需要了解底层代码。这对于我们社区中不熟悉语法的初学者来说尤其重要。鉴于此,您能否编辑您的答案以包括对您正在做的事情的解释以及您为什么认为这是最好的方法?
1赞 Himanshi Thakur 1/13/2022 #2

如果您的应用以 Android 12 或更高版本为目标平台,并且包含使用意图过滤器的活动、服务或广播接收方,则必须为这些应用组件明确声明 android:exported 属性。如果应用组件包含 LAUNCHER 类别,请将 android:exported 设置为 true。在大多数其他情况下,请将 android:exported 设置为 false。

<service android:name="com.example.app.backgroundService"
     android:exported="false">
<intent-filter>
    <action android:name="com.example.app.START_BACKGROUND" />
</intent-filter>

有关更多信息,您可以查看此链接

0赞 Mustafa Amer - ATS 4/4/2022 #3

在清单中添加活动启动器活动android:exported="true"