找不到对象上的参数 [project ':model'] 的方法 api()
Posted
技术标签:
【中文标题】找不到对象上的参数 [project \':model\'] 的方法 api()【英文标题】:Could not find method api() for arguments [project ':model'] on object of找不到对象上的参数 [project ':model'] 的方法 api() 【发布时间】:2018-05-16 15:18:45 【问题描述】:错误:(36, 0) 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [project ':model'] 的方法 api()
请帮帮我。
这是我的 build.gradle 文件。
apply plugin: 'com.android.application'
//apply plugin: 'io.fabric'
android
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig
applicationId "com.manafzar.mytaxi.driver"
minSdkVersion 16
targetSdkVersion 26
versionCode 23
versionName "2.0.3"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
javaCompileOptions
annotationProcessorOptions
arguments = [eventBusIndex:
'com.manafzar.mytaxi.driver.DriverEventBusIndex']
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
dataBinding
enabled = true
dependencies
annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.0.1'
api project(':model')
api 'com.google.maps.android:android-maps-utils:0.5'
api 'com.diogobernardino:williamchart:2.5.0'
apply plugin: 'com.google.gms.google-services'
【问题讨论】:
我的纯 Java 项目(没有 Android)也遇到了同样的问题。我通过在我的build.gradle
文件中添加以下行来修复它:apply plugin: 'java-library'
。
@ShadowMan:你的评论应该是一个答案,这样它才能获得投票!
【参考方案1】:
我从 Gradle 5.0 迁移到 Gradle 6.0.x 时遇到了同样的问题。
正如@ShadowMan 提到的,问题是缺少引入api
方法的java-library
插件。
在您的build.gradle
文件中,您应该包括:
plugins
id 'java-library'
更多信息可以在这里找到:https://docs.gradle.org/current/userguide/java_library_plugin.html
【讨论】:
【参考方案2】:我向项目的build.gradle
添加了两个项目依赖:
buildscript
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:3.6.2'
**api project(':StickyListHeaders')**
**api project(':Farayan.Core')**
将依赖项移至模块的build.gradle
后,问题解决:
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
**api project(':StickyListHeaders')**
**api project(':Farayan.Core')**
【讨论】:
【参考方案3】:请在您的依赖项标签中添加“compile”而不是“api”。 请在您的主 build.gradle 文件中添加以下代码:
allprojects
repositories
jcenter()
google()
maven
url "https://maven.google.com"
【讨论】:
在 gradle 中处理依赖项的新方法是使用implementation
处理任何运行时范围的依赖项(例如 jackson 或 bouncycastle 等实际上并未在您的 API 中公开但运行所需的东西正确),api
用于编译(默认)范围依赖项(编译和运行都需要的东西)。见:***.com/a/44419574/2167531以上是关于找不到对象上的参数 [project ':model'] 的方法 api()的主要内容,如果未能解决你的问题,请参考以下文章
Django - NoReverseMatch:“bha”的反向没有找不到参数
在 NSManagedObjects 上的错误调试属性的对象上找不到属性
Android 上的 Flutter 错误:找不到 aapt2-proto.jar