Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener.

编辑器版本:Unity2019.2.21f1

前言

问题起因在这里
解决Unity2019打包,提示 SDK Tools version 0.0.0 < 26.1.1
原本我已经觉得自己解决了问题。因为打包已经没有问题了。然后今天突然换了一个新的项目。又出现了这样的问题。

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring root project 'gradleOut'.

> Failed to notify project evaluation listener.

> org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 15s

填坑过程

看到报错,第一反应就是gradle有问题或者库文件引用问题。
在Unity里调整一些设置未果后。只得打成安卓工程了。
安卓工程必然报错,不过没什么关系,先检查插件的版本。
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第1张图片
检查gradle库版本

在这里插入图片描述
果然是库有问题,库版本不对应。
不清楚问题在哪的可以查看官方gradle对应关系。Android Gradle 插件版本说明

Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第2张图片

解决方案

版本都是一一对应的,过高过低都会出问题。
我用的插件版本是3.0.1 所以我对应的应该是4.1+,于是我改成下图这样。
在这里插入图片描述
然后安卓工程打包无误,本来该完结撒花的。
我突然有个问题,unity2019全面支持gradle打包为啥还要导成安卓工程来解决问题呢。如果是gradle版本的问题,能否直接从unity层面来修复这个问题。

再填坑过程

1:首先找unity2019自带的gradle文件位置。
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第3张图片
2:边查边看找到这个文件夹后发现很多熟悉的东西。以下四个文件都能在安卓工程找到对应的文件。
按别人的教程添加阿里的库放在其他库前面。

maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}

(这个库其实只是为了解决翻不了墙下载不到对应的文件,一般用在报找不到引用文件的问题上。所以结果是我添加了我仍然没有解决问题。)
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第4张图片
3:修正gradle版本,我又尝试在下面位置指定4.1版本。也并没有用。

Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第5张图片
4:能改动的地方都试了仍然没有解决问题。所以,哪里出了问题呢?我又检查了一次对应关系,又发现了一个新问题。
我第一张截图(安卓工程)引用的版本号是3.0.1
在这里插入图片描述

第六张截图(unity工程的默认安卓配置)引用的版本号是3.4.0
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第6张图片
那么3.0.1这个版本号是哪来的?本着求真务实的良好心态。我在工程里搜索了gradle,
temp的文件都不用看(黑色框内,因为是自动生成的。)
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第7张图片
所以我打开了这个文件(红色框内)果然找到了这个3.0.1。
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第8张图片
那么我要怎么做,因为Unity2019 默认的是3.4.0,而且空包打包无问题,那无疑说明3.4.0的库版本是Unity2019支持的。

解决方案2

没错,gradle库版本号和unity默认的版本号一致就好了。可以直接Unity打包apk。
Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第9张图片
完结撒花。

尾记

我找到这个gradle文件了又说明什么,它在哪里引用呢?为什么没用Unity的默认版本呢?
答案如下:

Unity2019Gradle打包Apk错误 Failed to notify project evaluation listener._第10张图片
测试结果:1:勾选,必须修改gradle文件才能打包。(使用自定义配置,包含配置里面的引用库)
2:不勾选,打包无误,但功能有所阉割,apk可能无法运行。(使用默认配置,有第三方插件额外引用库的时候,无法获取导致Bug)

另外,改完第一次打包的话极慢,在AndroidStudio里也是一样的。第一次极慢,只要不报错,耐心等待就好。

以上。

你可能感兴趣的:(Unity打包,Unity2019gradle,前端)