You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle报错:找不到针对参数[directory 'libs']的api()方法求助

解决Gradle报错:找不到针对参数[directory 'libs']的api()方法

这个错误是两个问题叠加导致的,我来一步步帮你修复:

1. 先修正依赖声明的语法错误

你在dependencies块里写的api(directory 'libs')是不正确的语法——api()方法并不接受directory 'libs'这种参数形式。要引用libs目录下的所有jar包,你需要用fileTree来声明,正确的写法是:

dependencies {
    // 替换掉错误的api(directory 'libs')
    api fileTree(dir: 'libs', include: ['*.jar'])
    // 其他你的依赖项...
}

2. 处理插件版本兼容问题

如果你的Android Gradle插件版本低于3.0.0,那api()这个配置项根本就不存在——它是在Android Gradle插件3.0.0版本中才引入的,用来替代旧的compile()关键字。

方案A:不升级插件,改用旧关键字

如果你暂时不想升级插件,把api换成旧的compile即可:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // 其他依赖...
}

方案B:升级插件版本(推荐)

升级到支持api()的插件版本能让你享受到更清晰的依赖管理逻辑(api负责传递依赖给上层模块,implementation则隐藏内部依赖、优化构建速度)。你需要修改项目根目录下的build.gradle文件,更新插件的classpath版本:

buildscript {
    repositories {
        google() // 旧版本可能用mavenCentral(),换成google()更稳妥
        jcenter()
    }
    dependencies {
        // 可选3.0.0及以上的稳定版本,比如3.6.4(和你的compileSdkVersion 27完全兼容)
        classpath 'com.android.tools.build:gradle:3.6.4'
    }
}

之后再按照上面正确的语法用api fileTree(...)声明libs目录的依赖即可。

小提醒:升级插件后,你的compileSdkVersion 27和3.6.4版本的插件完全兼容,不需要额外调整SDK版本。

内容的提问来源于stack exchange,提问作者Sushan Dhital

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:17:23