在使用 Unity 开发 Android 应用时,在构建 AAB 文件时。最近,我遇到了一个具体的问题,并成功解决了它。本文将分享我的解决方案,希望能帮助到遇到类似问题的开发者。
问题描述
在使用 Unity 2022.3.21f1 和 AdMob 8.6.0 进行构建时,遇到了文件中的弃用配置项导致的构建失败问题。具体错误信息为:
WARNING:The option setting ‘android.bundle.enableUncompressedNativeLibs=false’ is deprecated.
The current default is ‘true`
这个配置项在 Android Gradle 插件 8.1 中被移除,默认值为 true。
这个问题很神奇,也很奇葩,记录一下,以防别人和我一样踩坑,我用unity导出项目在Android Studio运行打包一切正常,用Unity打包aab的包就出现这个问题。解决方案如下:
解决方案
经过多次尝试和调试,我找到了一个有效的解决方案。以下是具体的操作步骤:
-
打开
AndroidManifest.xml文件在 Unity 项目的
Assets/Plugins/Android/目录下,找到并打开AndroidManifest.xml文件。 -
查找并移除问题配置
如果文件中包含以下行:
xml 复制代码 <property tools:node="removeAll" />这行代码用于在
AndroidManifest.xml文件中移除所有<property>节点。由于这种移除可能引起构建问题,建议将其删除。 -
在文件末尾添加注释
为了确保文件修改的标记和管理,建议在文件末尾添加一个注释行:
xml <!-- AnalyticsFixPropertyRemover -->修改后的
AndroidManifest.xml文件应如下所示:xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools"> <!-- 其他内容 --> </manifest> <!-- AnalyticsFixPropertyRemover --> -
保存并重新构建项目
完成上述修改后,保存文件并重新尝试构建项目。此时,构建过程应该能够顺利完成,同时所有功能(如广告、Google 登录等)也能正常工作。 没有看错,我只是添加了一句注释并解决了这个问题。考虑:在文件末尾添加注释不会改变实际的配置内容,但可以帮助标记文件的修改情况,并确保构建系统或工具不会错误地处理该文件。
补充
后续发现Force Resolve 可以解决