Unity3D的Gradle打包错误,引发的一系列操作

前提:

此博客主要是引导大家如果以后自己遇到问题了,大家应该如何自己去解决,以本次事例来讲述一下如何思考与解决问题。

1.打包出错的原因

Could not resolve all files for configuration ':lintClassPath',当时出现这个错误的时候比较烦躁,没有仔细看控制台的打印,直接把错误抛给百度,说什么jdk版本不对或者是AS软件出现这个问题怎么去修改build.gradle,但是基本试过了网上所有的方法,最后还是没有成功,于是开始仔细看控制台的打印,准备耐心去解决。

2.分析出错的原因

在控制台看到Could not download的字样,大概知道了是网络原因,后面还有一些链接的地址,好像是从这个url无法下载到一些jar包,估计是在国内被墙了,无法访问到国外的谷歌,知道是什么原因就可以去解决了。

3.解决问题

首先把unity控制输出的url地址,使用浏览器访问看一下是什么情况,访问这个链接会下载jar包,但是速度基本没有,一直是百分之0,想到的第一个办法就是翻墙,准备百度一下翻墙软件,但是国家法律规定,也查找不到一些可用的翻墙软件,这...,有点难受,但是问题不大,国内应该是有镜像或仓库网站的,经过百度以后发现网站是阿里云的maven.aliyun.com,作为对安全网络方面懂一点的小白,准备去修改电脑的hosts文件,如果unity去访问国外的那些仓库网址时直接转向国内的仓库网址,问题是我需要知道maven.aliyun.com的ip地址,毕竟也是学过网页开发的,这个东西还是难不倒我,如图下:

请求这个网站的时候看到这个数据是来自这个网址的,ip地址记录下来以后,准备去修改hosts文件,大概是182.92.29.54  jcenter 远程仓库的网址,激动的准备去打包尝试一下,嗯...还是不行,可能是这2个网站的目录结构不同导致的,这样直接在国内仓库网址把需要打包的jar下载过来放到相应位置,思考一下,这个东西一般会下载到那个目录,指定不可能在你的工程目录下,因为如果在工程目录下,每次打包岂不是需要重新下载?这样一定是放在游戏引擎的安装目录,经过一番盘查,得出的目录是Unity 2019.1.0a8\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib,将unity控制台打印的所有jar包在国内的仓库网址下载过来,然后直接放到上面找到的目录里,这样问题确实得到解决了,但是!!!这有点不完美,为什么我不能去修改unity的下载地址,把它从jcenter 远程仓库的网址变成maven.aliyun.com,程序是改不了,但是一般来说程序去读取配置文件来获取网站的URL,之前看到网站说使用AS出现类似问题时需要修改的一个文件就是build.gradle,所以准备在项目工程搜索build.gradle,果然有这个文件,在Temp\gradleOut里,但是看到这个Temp感觉怪怪的,这个文件不会是在打包时生成的吧...,算了先尝试修改一下,如图下:

重新打包看看能不能直接成功,果然不行,重新去看修改过的那个文件还真的变回去了,这样怎么办呢,这个东西也不知道时怎么生成的,思考了一下,在游戏引擎目录有没有可能是用一个模板文件来生成这个build.gradle,准备去unity的安装目录找一下,又被我找到了几个可能的文件,这里直接说正确的文件,目录所在是Unity2019.1.0a8\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates,如图下:

这里有三个文件,把三个文件里的buildscript,allprojects标签最前面添加上

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

maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}

再次尝试打包,终于成功了。

发布了26 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/m0_37920739/article/details/103090039