如题,项目需求需要unity导出Android包,目标等级需要Android 12 ( API 31 )以上,结果导出时报错。究其原因: Android Build Tools 31.0.0 与 Unity 构建系统不兼容所致。从 Android Build Tools 31.0.0 版本开始,DX被移除,取而代之的D8,导致 Unity 的 Android build 发生中断。
解决方案:1、
找到自定义的文件:
Assets/Plugins/Android/mainTemplate.gradle
Assets/Plugins/Android/launcherTemplate.gradle
设置编译的SDK版本和buildTools的版本如上图。
2、打开自定义的Mainfest.XML文件,找到应用启动的Activity, 把 android:exported="true"
属性加进去,否则会在部分机型上解析失败导致不能安装。
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" 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" />
</activity>