不能飞的猪只是没用的猪。
—— 宫崎骏 《红猪》
常见的1种case
记录一下,新电脑安装android studio导入公司那些gradle还是5.5左右的工程以后,各种不适应。编译问题出现了。老电脑都是好好的。
cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头这样的错误。
解决方案:
小齿轮->project structure->SDK Location-> (JDK location was moved to Gradle Settings)点击Gradle Settings。
或者
Android Studio -> Preferences -> 搜索Gradle-> Gradle JDK 改成1.8。
官方其他信息补充:
跟随 Arctic Fox 更新的其中一个重点就是 AGP 7.0 的调整 … 使用 Android Gradle plugin
7.0 构建时需要 JDK 11 才能运行 Gradle … 并且只要你更新到 Android Studio Arctic Fox ,它是直接捆绑了 JDK 11 并将 Gradle 配置为默认使用它,所以大多数情况下,如果你本地配置正常,是可以直接使用 AGP 7.0
的升级。 … 在 Project Structure 的 SDK Location 栏目,可以看到 JDK 的配置位置已经被移动到
Gradle Settings …
所以有的博客说,工程切换到gradle7.0就好了。但是我们不希望改变代码,毕竟公司那么多人,还有内网平台的编译工具,肯定是不能改变源码的gradle版本的。
结合上面的引用重点信息,“Android Gradle plugin 7.0 构建时需要 JDK 11 ”,
“它是直接捆绑了 JDK 11 并将 Gradle 配置为默认使用它”
懂了吧?反过来思考,老工程,使用的AGP(android gradle plugin)也是老的,那么他依赖的JDK也需要是老的1.8。
修改jdk的版本为1.8就可以解决啦!
所以新电脑或者新android studio不能用的原因,那是因为新版的android studio默认使用了jdk11,导致你的老工程在新电脑就不能用啦。
0328补充第二种:
上述操作为第一步。最近又还经常遇到提示:
那么,
project structure->Project页,发现android gradle plugin version是空的。
从 https://developer.android.google.cn/studio/releases/gradle-plugin.html
找到对应的,比如我这里是5.5.1的gradle版本,那么选择一个最高一点的3.5.4能支持的AGP version。
正确填写。
但是可能你会遇到一些墙的问题。只能整理下网络再行配置了。
一般这个都是在gradle编译通过后启动时候,jdk更换后 ,clean project 一定要保证网络通畅。