You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity打包AAB遭Google拒绝,添加android:exported仍未解决求助

解决Google Play上传AAB因android:exported属性被拒问题

问题背景

上传Unity打包的AAB文件到Google Play时被拒绝,提示:

您上传的APK或Android App Bundle包含带有intent filter的activity、activity alias、service或broadcast receiver,但未设置‘android:exported’属性。该文件无法在Android 12或更高版本上安装。

已给主Activity添加android:exported="true"但问题依旧,开发环境:Unity 2021.3.9f1、Android Studio 2021.2.1 patch 2,当前使用的Manifest文件如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.unity3d.player" android:versionCode="1" android:versionName="1.0">
  <application android:label="@string/app_name" android:extractNativeLibs="true" android:icon="@mipmap/app_icon"
      tools:targetApi="m">
    <!-- The MessagingUnityPlayerActivity is a class that extends
         UnityPlayerActivity to work around a known issue when receiving
         notification data payloads in the background. -->
    <activity
        android:name="com.google.firebase.MessagingUnityPlayerActivity"
        android:screenOrientation="portrait"
        android:launchMode="singleTask"
        android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"
        android:resizeableActivity="false"
        android:hardwareAccelerated="false"
        tools:targetApi="n"
        android:exported="true">

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

      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
      <meta-data android:name="android.notch_support" android:value="true" />

    </activity>
    <service android:name="com.google.firebase.messaging.MessageForwardingService"
        android:permission="android.permission.BIND_JOB_SERVICE">
    </service>

    <meta-data android:name="unity.splash-mode" android:value="0" />
    <meta-data android:name="unity.splash-enable" android:value="True" />
    <meta-data android:name="unity.launch-fullscreen" android:value="True" />
    <meta-data android:name="unity.allow-resizable-window" android:value="False" />
    <meta-data android:name="notch.config" android:value="portrait|landscape" />
  </application>
  <uses-feature android:glEsVersion="0x00020000"
      tools:ignore="ManifestOrder" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

## 可能的原因及解决办法
### 1. 合并后的Manifest存在未设置exported的组件
Unity打包时会自动合并所有插件(比如Firebase)的Manifest文件,你手动修改的主Manifest可能没覆盖到第三方插件中的组件。
- **查看最终合并的Manifest**:打包后在项目的`Temp/StagingArea/AndroidManifest.xml`找到最终生成的Manifest,搜索所有包含`<intent-filter>`的标签,检查每个对应的Activity/Service/BroadcastReceiver是否都设置了`android:exported`属性。

### 2. 第三方插件(Firebase)的组件未适配Android 12
旧版本的Firebase Messaging SDK可能没有添加`android:exported`属性,导致合并后出现问题。
- **升级Firebase SDK**:确保Unity中使用的Firebase包是适配Android 12的最新版本(对应Unity 2021.3.x的兼容版本)。
- **强制覆盖组件属性**:如果第三方插件的Manifest里有问题组件,在你的主Manifest中重新声明该组件并添加`android:exported`。比如针对Firebase的服务,可添加如下声明:
```xml
<service
    android:name="com.google.firebase.messaging.MessageForwardingService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="false" />

(注:该服务没有对外暴露的需求,设为false即可)

3. Unity默认Activity残留

如果你替换了默认的UnityPlayerActivity为MessagingUnityPlayerActivity,可能原UnityPlayerActivity仍在合并后的Manifest中,且带有intent filter却未设置exported。

  • 在合并后的Manifest中检查是否存在com.unity3d.player.UnityPlayerActivity,如果存在且带intent filter,需添加android:exported属性,或者在主Manifest中用tools:node="remove"移除该Activity。

4. 确认Unity的Android配置

  • 在Unity的Player Settings > Android > Publishing Settings中,确保Target API Level设置为Android 12 (API level 31)或更高。

内容的提问来源于stack exchange,提问作者Daler Odinaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:55:26