又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可.
升级完了,打开GIT下载的项目,启动重新编译,额额额,出现了编译错误,无法编译通过,关键是没有详细的错误提示,“error:failed link file resources”资源文件无法找到。
这个问题通常出现为资源文件出现了问题无法正常使用,可能是layout中使用的资源被删除了或者是文件名错误,或者是资源格式错误等等,具体是什么错误呢,这里没有给出详细提示.
后来发现AS一直提示升级Gradle,好吧每次升级AS好像都要升级Gradle,那就升级吧,提示升级到Gradle5.1.1,OK升级,关于Gradle的升级方法有很多种,如果能直接update成功最好,如果失败了,可以直接到官网下载相应的版本解压到AS安装目录下的Gradle下即可.
gradle安装参照:android studio gradle 两种更新方法更新
升级后记得给AS重新指定gradle,选择“use local gradle distribution”.我是手动下载的版本5.4(AS3.4.2要求gradle最低版本5.1.1,由于最新版本已经到了5.5这里使用5.4稳定版)
查看项目的build.gradle,更新到新版本,一般是和AS使用同一个版本号,如下图红色部分.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
google()
jcenter()
}
dependencies {
classpath'com.android.tools.build:gradle:3.4.2'classpath'com.github.dcendents:android-maven-gradle-plugin:2.0'}
}
allprojects {
repositories {
mavenCentral()
google()
jcenter()
maven { url'https://www.jitpack.io'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
更新后重新编译,依然是“error:failed link file resources",不过这次出现了详细的错误提示:
很多很多,有资源文件丢失的,layout文件缺失的,有多语言配置在默认语言strings里未设置的等等,按照提示一个一个把错误改正.再重新编译就好了.
这样一圈下来又是几个小时,似乎每次升级AS都会出现编译不通过的情况,不知道google什么时候能把AS升级Gradle升级做到向下兼容,不然就项目升级新版AS始终是个麻烦问题.
这也难怪IdeaUI java开发还是使用Maven构建的比较多,至少每次升级没有发现需要来回改动源码的情况,看来gradle还需要再健壮稳定些才能更好的推广,毕竟稳定兼容还是比较重要的.
来源:https://www.cnblogs.com/merray/p/11179465.html