系列教程 · 2024年2月28日

解决 cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension’ 开头的无效内容。应以 ‘{layoutlib}’ 之一开头

最近跑一些老项目老是报错各种问题其中就发现了一个不常见的问题:
cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension’ 开头的无效内容。应以 ‘{layoutlib}’ 之一开头。
android studio导入公司那些老工程gradle还是5.5左右的,各种不适应。编译问题出现了。

最简单的是升级Gradle —-

gradle-wrapper.properties 文件
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
build.gradle 文件
classpath ‘com.android.tools.build:gradle:4.2.2’

以上是最简单的解决方案但是如果在项目上使用就不方便了,所以可以看看下面 另一种解决方式

解决方案:

设置->project structure->SDK Location-> (JDK location was moved to Gradle Settings)点击Gradle Settings。
或者Android Studio -> Preferences -> 搜索Gradle-> Gradle JDK 改成11。
使用 Android Gradle plugin7.0 构建时需要 JDK 11 才能运行 Gradle

[File]->[Project Structure]里面的Android Gradle Plugin Version和Gradle Version 升级Gradle

74e278dc295b4fa78005ead059a75bc2.png [File]->[Settings] 如下图,找到Gradle JDK版本,有问题的工程要跟正常能运行的工程,配置保持一致。
36010f9ee7bd49258216212a5a34ceca.png

工程切换到gradle7.0就好了。但是对于公司协作的代码一个人升级都需要跟着升级,有可能影响同事使用!

另一种解决方式

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。正确填写。但是可能你会遇到一些墙的问题。只能整理下网络再行配置了。
f6118b04c5a8442ea697cd7ba6e2eaf1.jpeg

补丁下载 使用arctic fox解决以上问题

48a235e7ca254d7bbce63cbb940e77ae.png

如果还是无法解决那么就去下载老版本的Android studio