Unity从2018.1.x升级到2018.2.0.b3后Android构建失败:FormatException
我之前帮几个开发者排查过类似Unity 2018.2测试版构建Android的问题,结合你的情况,给你几个针对性的排查方向:
检查Android SDK/NDK版本兼容性
Unity 2018.2测试版对Android构建工具的版本要求和2018.1.x有差异。你可以打开Edit > Preferences > External Tools,确认SDK、NDK、JDK的路径是否正确,重点关注SDK Build Tools版本——建议切换到27.0.3这类Unity官方推荐的稳定版,避开太新或太旧的版本。重置Player Settings的Android配置
版本切换后,Player Settings里的参数可能出现异常:- 打开
Edit > Project Settings > Player,切换到Android标签页 - 进入
Other Settings,检查Minimum API Level、Target API Level是否为合理的稳定版本(避免选自动检测后出现的异常版本号) - 可以尝试点击
Reset All按钮(记得先备份当前配置),重新设置必要参数后再构建
- 打开
清理Unity缓存与构建目录
旧版本的缓存很可能和测试版冲突:- 删除项目根目录下的
Library文件夹(重启Unity后会自动重新生成) - 清空Android构建输出目录(比如默认的
Temp/Android或你自定义的输出文件夹) - 重启Unity后再尝试构建
- 删除项目根目录下的
排查自定义构建脚本与第三方插件
你的报错:FormatException: Input string was not in a correct format. System.Version+...
大概率是代码里尝试用
System.Version.Parse()解析带后缀的版本号(比如2018.2.0.b3),但System.Version不支持这种带字母后缀的格式。你可以先禁用所有第三方插件,用默认配置构建,如果成功,再逐个排查插件或自定义构建脚本里的版本号解析逻辑,修改为兼容带后缀版本的处理方式。切换回内部构建系统验证
你之前用内部构建正常,现在可以切换回Internal构建系统测试:打开Player Settings > Android > Build Settings,把Build System改成Internal,再尝试构建。如果成功,说明是Gradle配置和测试版的兼容性问题,可以尝试更新Gradle到Unity推荐的版本(在Preferences > External Tools里设置Gradle路径)。
内容的提问来源于stack exchange,提问作者Knight Who Says Ni

