遇到一个非常皮的问题,我更新了Android Studio的SDK Build Tools,直接将 Build Tools 29 rc1 与 rc2 都下载了。
我当时是直接更新到了 29 rc2
直接导出项目在Android Studio中会直接显示 …

android studio ERROR: Failed to find Build Tools revision 29.0.0
另外如果直接出APK然后安装会显示一个
Installation error:INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
这个报错信息是十分误导人的,网上的解决方案一般都是更改keystone或直接更改unity的项目导出模版。这样越改越偏。如果你也和我一样不妨试一下下面的方案。

我在Stackoverflow上找到了一解决方案:

1
2
3
4
5
For building a project, Unity3d uses a stable version of the Build Tools and not an rc (release candidate).
The Android SDK path is usually C:\Users\<username>\AppData\Local\Android\sdk\build-tools\ delete the 29.0.0-rc1 folder or move it out to anywhere. You could also remove the rc version of the SDK Build Tools via Android Studio's SDK manager.
Doing that the project should build successfully.

大意就是让我直接将下载的 Build Tools 29 rc1 与 rc2 先删除然后再打包。试了一下成功安装了。

安装成功了

UNITY的Build Tools使用策略猜测

经过上面的实力躺坑,可以推断如果你安装了更新的Build Tools,unity导出的时候就会使用最近更新的最新的那个,或许是路径拼接的问题,unity所引用的build tools只会引用前面的版本号 ,就像我遇到的一样 明明下载了 29 rc1 / 29 rc2 ,Unity偏偏不用执着的去找一个叫 29 的 Build Tools。

或许这是一个隐藏bug吧,希望Unity团队早日解决。