数据绑定注解处理器 kapt 警告

28
在我的应用程序模块的build.gradle文件中,我已经添加了以下内容:
dependencies {
kapt('com.android.databinding:compiler:3.1.2')
...
}

但我仍然收到编译器警告:
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.1.2'.

一切都正常运行,只是我讨厌有警告信息挂在那里。

非常感谢您的帮助!


1
你是否有其他使用annotationProcessor的依赖项? - peshkira
在我的 build.gradle 文件中,所有其他依赖项都是 "implementation"、"testImplementation" 或 "androidTestImplementation"。我不知道我所拥有的第三方依赖项是否使用注解处理。 - cren90
我也遇到了同样的问题。此外,我还收到了以下错误信息:e: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding 无法获取公共无参构造函数。 - cesards
kapt 是针对 Kotlin 代码的,而 annotationProcessor 则是针对 Java 代码的。 - Ryan Amaral
@RyanAmaral,我知道这一点,并且在我的build.gradle中使用了kapt(如上所示),但仍然收到警告。 - cren90
已解决Databinding注释处理器kapt警告。 - Shomu
2个回答

17

在升级到最新的Android Gradle构建插件和Kotlin之前,我也遇到了同样的警告。现在它们已经消失了。这是我使用的配置。

project.gradle

buildscript {
    dependencies {
        classpath "com.android.tools.build:gradle:3.1.3"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51"
    }
}

module.gradle

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

android {
    ...
    dataBinding {
        enabled = true
    }
}

dependencies {
    // no kapt declaration for databinding here
}

希望这能有所帮助。


看起来更新到1.2.51并删除kapt依赖可以解决这个问题。 - cren90

1
在你的应用程序构建文件 app build.gradle 中添加以下内容。
kapt "com.android.databinding:compiler:$android_plugin_version"
apply plugin: 'kotlin-kapt' // This one at top where plugin belong to

这很好用。 $android_plugin_version 是在 application build.gradle 中的 com.android.tools.build:gradle 版本。
此外,请将此添加到您的模块 build.gradle 中。
android {
    /// Existing Code
    kapt {
        generateStubs = true
    }
}

我认为你缺少了apply plugin: 'kotlin-kapt'


1
现在,“kapt.generateStubs”未被“kotlin-kapt”插件使用。 - LunaVulpo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接