1. 背景介绍
最近Java切Kotlin学习,刚好把AS、JDK、Gradle更新到较新版本,打算整体来一次换新。感觉换的太快容易崩些问题出来,果不其然就踩坑了,分享一下我的踩坑记录。
2. 过程记录
a. 项目新建
新建项目的流程还是AS正常流程,New Project -> Empty Activity,简单命名一下,直接创建
刚新建完,不出意外,直接就报Runtimeout了,去阿里云仓库映射一下
仓库地址:仓库服务
注意:gradle 8.x以后的版本 maven引用的写法变了
maven { url = uri("https://maven.aliyun.com/repository/central") }
映射完以后,一并把JDK升级到17
jdk17下载:https://www.oracle.com/java/technologies/downloads/#jdk17-windows
没有代理和VPN直接下也可以,大概下了半小时多,然后把JDK安装并配置到系统变量
因为创建以后AS直接给我配置插件8.1.2的版本,直接用它就行
plugins {
id 'com.android.application' version '8.1.2' apply false
}
查一下插件版本和Gradle的匹配,发现要用8.0以上版本的Gradle
Gradle一直是网速感人的重灾区,想了想还是去Gradle Distributions手动下载吧
下载完Gradle以后,改一下Gradle的引用地址,解压gradle-8.0-all.zip到AS使用的Home地址对应的.~/.gradle/wrapper/dists路径下
注意我这边是直接把.~/.gradle直接迁移到了G盘根目录,这个home一般C盘不超额的话,保存原样就可以了
然后在.~/gradle-wrapper.properties文件修改引用为本地地址,搞定后sync一下
然后就发现一个很难顶的事,Module居然出现了引用不到的情况。
sync结果报了一个
Plugin was not found in any of the following sources
完全表示纳闷,环境也配置好了,不应该找不到安卓源码的呀,于是搜索引擎查了下,
I. 排除代理导致的问题
可以看到是没有开代理的,不是代理导致的问题
II. 排除SDK未下载的问题
编译的SDK是33,所以把Android13都下载一轮,结果还是报错
III. 找到原因
最后找到原因,settings.gradle删除多了,Android的源码需要从google()下载,还是需要保留它的,加入后重新sync一下,正常使用