Gradle自定义插件报错:无法加载LibraryExtension类
解决方法
1. 对齐AGP依赖版本
确认项目中refreshVersions的版本配置文件(versions.properties)里,Android Gradle插件(AGP)的版本与项目实际使用的7.3.1一致,添加或修改如下配置:
com.android.tools.build:gradle=7.3.1
2. 延迟配置AGP Extension
修改自定义插件代码,用pluginManager.withPlugin包裹LibraryExtension的配置逻辑,确保AGP插件完全加载后再执行配置:
class FeaturePlugin : Plugin<Project> { override fun apply(project: Project) { with(project) { pluginManager.apply { apply("com.android.library") apply("kotlin-android") apply("kotlin-kapt") apply("com.example.myapplication.hilt-plugin") } // 监听AGP插件加载完成事件,再执行Extension配置 pluginManager.withPlugin("com.android.library") { extensions.configure<LibraryExtension> { configureKotlinAndroid(this) defaultConfig.targetSdk = Consts.AndroidTargetSdk configureFlavors(this) } } dependencies { add("implementation", AndroidX.core.ktx) add("implementation", AndroidX.lifecycle.viewModelCompose) add("implementation", AndroidX.hilt.navigationCompose) } } } }
3. 完善buildSrc依赖配置
在buildSrc的build.gradle中添加Gradle核心API依赖,确保插件运行时类路径完整:
dependencies { // Gradle核心API,显式添加避免类路径缺失 implementation(gradleApi()) compileOnly(Android.tools.build.gradlePlugin) compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:_") implementation(KotlinX.serialization.json) }
4. 清理缓存并重新构建
执行以下命令清理构建缓存,确保依赖同步生效:
./gradlew clean build --refresh-dependencies
问题根源
报错Unable to load class 'com.android.build.api.dsl.LibraryExtension'通常由以下原因导致:
- AGP插件未完成加载就尝试访问其Extension;
- buildSrc中AGP依赖版本与项目实际使用版本不匹配;
- buildSrc缺少Gradle核心API依赖,导致插件运行时类路径不完整。
内容的提问来源于stack exchange,提问作者Jempis
相关产品推荐
相关产品推荐

