Unity引擎生成Android构建失败:资源重打包失败
嘿,我之前在Unity打包Android安装包时也踩过这个「Failed to re-package resources」的坑,结合你的错误日志,给你几个实用的排查和解决方向:
解决Unity Android构建资源重打包失败的方案
1. 先搞定SDK与Build Tools版本不匹配的问题
从你的日志能看到,你用的Build Tools是25.0.2,但引用的Android Platform是27,版本差得有点多,这是aapt报错的常见原因:
- 打开Unity的「Edit > Project Settings > Player > Android > Publishing Settings」,勾选「Custom Gradle Template」
- 找到生成的
mainTemplate.gradle文件,把buildToolsVersion和compileSdkVersion改成一致的版本,比如都用27.0.3(记得先在Android SDK Manager里安装对应版本的Build Tools和Platform包) - 同时确认Unity的「External Tools」里的Android SDK路径是正确的,指向你用的ADT bundle里的sdk目录
2. 检查资源文件的命名和格式是否合规
aapt对资源文件的要求特别严格,一点小问题就会报错:
- 确保
res目录下所有资源文件名只能用小写字母、数字、下划线和点,绝对不能有大写、空格或者特殊字符 - 排查drawable、layout等目录里有没有损坏的文件,比如打不开的图片、标签没闭合的XML布局
- 清理Unity缓存:先点「File > Build Settings > Android > Clean Build」,然后手动删除项目根目录下的
Temp和Library文件夹,再重新尝试构建
3. 排查第三方插件的资源冲突
日志里提到了--extra-packages com.stansassets.androidnati...,大概率是StansAssets这类第三方插件引入了重复资源:
- 检查项目里所有插件的
res目录,看看有没有和主项目或者其他插件重名的资源(比如同名的图标、字符串) - 可以先暂时禁用可疑插件,重新构建试试,找到冲突来源后,修改重复资源的名称或者直接删除重复项
4. 针对旧版本Unity的特殊调整
你用的ADT bundle是2014年的,对应的Unity版本应该也比较老,试试这些:
- 降级Build Tools版本到和Android 27更匹配的,比如27.0.3,而不是25.0.2
- 确保Android SDK里的「Android Support Repository」已经安装,旧版本Unity依赖这个来处理兼容性
你的错误日志:
CommandInvokationFailure: Failed to re-package resources. /Users/siddharthtrivedi/Company/Android/adt-bundle-mac-x86_64-20140702/sdk/build-tools/25.0.2/aapt package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "/Users/siddharthtrivedi/Company/Android/adt-bundle-mac-x86_64-20140702/sdk/platforms/android-27/android.jar" -F bin/resources.ap_ --extra-packages com.stansassets.androidnati...
内容的提问来源于stack exchange,提问作者Siddharth
相关产品推荐
相关产品推荐

