我正在将这个非常老的项目更新到最新的SDK版本32。在更新IDE时,如果需要针对Android12及更高版本的应用程序来为android:exported指定一个显式值,则对应的组件具有定义意图筛选器。因此,我为所有活动添加导出标记,为启动活动设置true值,并为其他活动和服务设置为false。
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"
}更新后,应用程序图标是可见的,但当我点击它时,应用程序不会打开。点击它时,它会显示“”的祝酒词。对此有什么想法吗?我该怎么解决这个问题?
发布于 2022-01-13 06:26:31
如果您的应用程序以Android 12或更高版本为目标,并且包含使用意图过滤器的活动、服务或广播接收器,则必须显式声明这些应用程序组件的android:导出属性。如果应用程序组件包括启动程序类别,则将:导出设置为true。在大多数其他情况下,将android:导出为false。
<service android:name="com.example.app.backgroundService"
android:exported="false">
<intent-filter>
<action android:name="com.example.app.START_BACKGROUND" />
</intent-filter>有关更多信息,您可以查看此链接
发布于 2021-12-24 08:52:51
<activity android:name=".MainActivity"
android:exported="false"> <---- set the value false for Launching
activity ,Other Activities --android:exported="true"发布于 2022-04-04 09:03:54
在清单中的活动启动程序中添加android:exported="true"
https://stackoverflow.com/questions/70462041
复制相似问题