Unity升级至2022.3.50f1后Android Gradle构建失败求助
解决Unity 2022.3 Android构建Gradle错误
错误原因分析
你遇到的两个Gradle错误本质是Unity版本升级后,自定义build.gradle配置与新构建系统不兼容导致的:
namespace()方法找不到:Unity 2022.3会通过Player Settings中的Package Name自动生成namespace配置,手动在build.gradle中添加该字段会与Gradle插件的配置逻辑冲突,尤其是AGP版本适配问题。compileSdkVersion未指定:手动在build.gradle中写的compileSdkVersion没有被Unity的Bee构建系统正确合并到生成的launcher模块配置中,导致Gradle无法识别。
解决方案
步骤1:修改build.gradle配置
移除冲突的配置项,调整后的build.gradle如下:
apply plugin: 'com.android.application' dependencies { implementation project(':unityLibrary') } android { compileSdkVersion 35 buildToolsVersion '34.0.0' compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } defaultConfig { minSdkVersion 23 targetSdkVersion 35 applicationId 'com.SiberianWellness.WayToWellness' ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } versionCode 181 versionName '3.20.5' } aaptOptions { noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp'] + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" } signingConfigs { release { storeFile file('/Users/honkhonk/MyWellnessStory/OtherFiles/ForAutoBuild/user.keystore') storePassword 'StoryWellnessMy2020' keyAlias 'publish' keyPassword 'StoryWellnessMy2020' } } lintOptions { abortOnError false } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.release jniDebuggable true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.release } } packagingOptions { doNotStrip '*/armeabi-v7a/*.so' doNotStrip '*/arm64-v8a/*.so' jniLibs { useLegacyPackaging true } } bundle { language { enableSplit = false } density { enableSplit = false } abi { enableSplit = true } } }
需要移除的项:
namespace "com.SiberianWellness.WayToWellness":由Unity自动生成ndkPath "/Applications/Unity/Hub/Editor/2022.3.50f1/PlaybackEngines/AndroidPlayer/NDK":Unity会自动使用内置NDK路径
步骤2:通过Unity Player Settings统一配置API版本
打开Unity编辑器,进入Edit > Project Settings > Player > Android > Publishing Settings:
- 设置
Compile SDK Version为35 - 设置
Target SDK Version为35 - 设置
Min SDK Version为23
这样Unity会自动将这些配置注入到生成的Gradle文件中,避免手动配置的合并问题。
步骤3:清理构建缓存
删除项目根目录下的Library/Bee和Temp文件夹,重新执行构建,确保旧缓存不会干扰新配置。
内容的提问来源于stack exchange,提问作者Fandr
相关产品推荐
相关产品推荐

