找不到参数的 kapt()方法

我面对一个问题已经超过3天了,而且我不能解决。 自从我开始在 Android 上使用 Kotlin 之后,我就不再使用“ annotationProcessor”,而是开始使用“ kapt”,在我开始构建 Android 即时应用程序之前,kapt 的一切工作都很顺利,直到我将“ kapt”添加到任何依赖项,比如 Glide 或 ButterKnife Gradle,它们总是显示无法找到 kapt ()方法的错误

Could not find method kapt() for arguments [com.github.bumptech.glide:compiler:4.7.1] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

这里是我的项目的格拉德尔文件

项目档案

// Top-level build file where you can add configuration options common to all sub-projects/modules.


buildscript {
ext.kotlin_version = '1.2.71'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}


allprojects {
repositories {
google()
jcenter()
}
}


task clean(type: Delete) {
delete rootProject.buildDir
}

应用程序模块分级文件

apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'


android {
compileSdkVersion 28


defaultConfig {
applicationId "com.demo.instantapptest.app"
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"




}


buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}


}


dependencies {
implementation project(':feature')
implementation project(':base')
}

基本模块级配文件

apply plugin: 'com.android.feature'
apply plugin: 'kotlin-kapt'


android {
compileSdkVersion 28
baseFeature true
defaultConfig {
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}


dependencies {
api 'com.android.support:appcompat-v7:28.0.0'
api 'com.android.support.constraint:constraint-layout:1.1.3'
application project(':app')
feature project(':feature')




implementation "android.arch.lifecycle:extensions:1.1.1"
kapt "android.arch.lifecycle:compiler:1.1.1"


implementation 'com.github.bumptech.glide:glide:4.7.1'
kapt 'com.github.bumptech.glide:compiler:4.7.1'


implementation 'com.google.dagger:dagger:2.15.0'
kapt 'com.google.dagger:dagger-compiler:2.15.0'


implementation 'com.jakewharton:butterknife:9.0.0-rc2'
kapt 'com.jakewharton:butterknife-compiler:9.0.0-rc2'


}

功能模块梯度文件

apply plugin: 'com.android.feature'


apply plugin: 'kotlin-android'


apply plugin: 'kotlin-android-extensions'


apply plugin: 'kotlin-kapt'


android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}


dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation project(':base')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'


}

瞬时应用程序分级文件

apply plugin: 'com.android.instantapp'


dependencies {
implementation project(':feature')
implementation project(':base')
}

==========

解决

通过将 kotlin-android 插件添加到基础模块

apply plugin: 'kotlin-android'
59095 次浏览

对我来说,我失踪了

apply plugin: 'kotlin-kapt'

希望能帮到像我这样的盲人。

Here is a working solution for the latest version of android studio 在插件中使用 id 'kotlin-kapt'代替应用插件。

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
}

所以你也忘了加上

apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'

in app level gradel file. Nice.

Use plugin with this order,


apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin:  'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'

如果有人与 房间图书馆发生冲突:

我尝试了以上所有的方法,但都没有效果,除非我改变这种悲惨的状况:

ksp("androidx.room:room-compiler:$roomVersion")

变成:

annotationProcessor("androidx.room:room-compiler:$roomVersion")

起初,我也改变了:

val roomVersion = "2.4.2"

变成:

def roomVersion = "2.4.2"

这个终于起作用了! ! !

毫无疑问,人们添加了 ksp (“ androidx.room: room-Editor: $room Version”) 图书馆而不是 Kapt (“ androidx.room: room ——编译器: $room Version”)

I faced this same error when I was trying to add Room library in my android project. 截至2022年8月17日,我可以解决在 Gradle (: app)中添加以下代码行的问题。

插件块中我添加了;

id 'kotlin-kapt'

依赖关系块中,我补充道;

def room_version = "2.4.3"


implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// To use Kotlin annotation processing tool (kapt)
kapt "androidx.room:room-compiler:$room_version"

这样做,我就可以告别“无法找到用于参数的 kapt ()方法”了。 希望有人可以节省一些时间来阅读这篇文章。

我面对过这一切

找不到参数的 kapt ()方法

错误,当我试图在我的项目中为 dagger添加依赖项时。 下面是最新版本的 Android Studio 的工作解决方案。

plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'   //Add this line in the plugins block usually seen at the top of build.gradle
}