原文: 关于Android12安装apk出现-108异常INSTALL_PARSE_FAILED_MANIFEST_MALFORMED的解决方法 - Stars-one - 博客园
在开发android时,build出来的apk文件,在android 12上安装时,出现安装失败(-108)的问题,如下图所示:

报错原因:
如果您的应用以 Android 12 或更高版本为目标平台,且包含使用 intent 过滤器的 activity、服务或广播接收器,您必须为这些应用组件显式声明 android:exported 属性。
警告:如果 activity、服务或广播接收器使用 intent 过滤器,并且未显式声明 android:exported 的值,您的应用将无法在搭载 Android 12 或更高版本的设备上进行安装。
如果应用组件包含 LAUNCHER 类别,请将 android:exported 设置为 true。在大多数其他情况下,请将 android:exported 设置为 false。
通俗的语言就是说,当你的AndroidManifest.xml中文件中,如果存在Activity,Receiver,Service使用到了<intent-filter>标签,则是要显示声明android:exported的值。
大部分情况下,设置为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>
</service>
如果包含启动(LAUNCHER)类别,则声明为true(实际上说的是App首次启动打开的那个Activity),如下面代码:
<activity android:name=".MainActivity" android:exported="true" android:theme="@style/MySplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
4089

被折叠的 条评论
为什么被折叠?



