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

Unity 2021.1.19打包APK/AAB遇android:exported缺失问题求助

Unity 2021.1.19打包Android时解决android:exported缺失问题

针对Android 12及以上版本的安装限制,以下是直接可落地的解决步骤:

  • 自定义主Manifest模板,补全exported属性
    在项目Assets/Plugins/Android目录下创建或复制Unity默认的AndroidManifest.xml(默认路径为Editor/Data/PlaybackEngines/AndroidPlayer/Apk/AndroidManifest.xml),找到所有带有<intent-filter>的组件(activity、service、receiver),显式添加android:exported属性:

    <!-- 主启动Activity必须设为true,允许系统调用 -->
    <activity android:name="com.unity3d.player.UnityPlayerActivity"
              android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <!-- 其他带intent-filter的组件,根据需求设置true/false -->
    <service android:name="xxx.xxx.Service"
             android:exported="false">
        <intent-filter>
            <action android:name="xxx.xxx.ACTION" />
        </intent-filter>
    </service>
    
  • 排查第三方插件的Manifest文件
    检查Plugins/Android下所有第三方SDK的AndroidManifest.xml或.aar包内的Manifest:

    • 若为单独的Manifest文件,直接给带<intent-filter>的组件补加android:exported属性;
    • 若为.aar包,解压后修改内部的Manifest,再重新打包为aar替换原文件。
  • 验证合并后的Manifest
    打包时勾选Player Settings→Publishing Settings中的Custom Main Manifest,打包完成后可在Temp/gradleOut/launcher/src/main/AndroidManifest.xml查看最终合并的Manifest,确认所有带intent-filter的组件都已设置android:exported。

  • 升级Unity补丁版本
    Unity 2021.1.19属于较早版本,官方后续补丁已修复内置组件的exported缺失问题,可升级至2021.1.x系列的最新补丁包(如2021.1.30f1),减少手动修改的工作量。

  • 适配Gradle配置
    开启自定义Gradle模板后,确保build.gradle中适配Android 12+的编译版本:

    android {
        compileSdkVersion 31
        buildToolsVersion "31.0.0"
    
        defaultConfig {
            targetSdkVersion 31
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:45:30