在 Android Studio 3.2 Canary 16 Kotlin 项目上找不到符号 DataBindingComponent

2023-12-10

我刚刚在 Android Studio 3.2 Canary 16 上创建了一个启用了 Kotlin 的新项目。然后我还启用了数据绑定,但收到一条错误消息,指出找不到 DataBindingComponent 类。

这是我的项目等级:

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

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.android_plugin_version = '3.2.0-alpha10'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-alpha16'
        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
}

我的模块 gradle 文件:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "net.julianonunes.myapp"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.android.support:design:27.1.1'
    kapt "com.android.databinding:compiler:3.1.2"
}

我的活动 xml:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable
            name="data"
            type="net.julianonunes.myapp.RegisterData" />
    </data>

    ....
</layout>

这是构建输出:

Executing tasks: [clean, :app:assembleDebug]

Configuration on demand is an incubating feature.

> Configure project :app
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'androidx.databinding:databinding-compiler:3.2.0-alpha16'.

> Task :clean
> Task :app:clean
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:compileDebugRenderscript
> Task :app:checkDebugManifest
> Task :app:generateDebugBuildConfig
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:mainApkListPersistenceDebug
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:splitsDiscoveryTaskDebug
> Task :app:processDebugResources
> Task :app:generateDebugSources
> Task :app:dataBindingExportBuildInfoDebug
> Task :app:transformDataBindingBaseClassLogWithDataBindingMergeGenClassesForDebug
> Task :app:transformDataBindingWithDataBindingMergeArtifactsForDebug
> Task :app:dataBindingGenBaseClassesDebug
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.pom
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.jar
> Task :app:kaptGenerateStubsDebugKotlin
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:28: error: cannot find symbol
  protected ActivityMainBinding(DataBindingComponent _bindingComponent, View _root,
                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:46: error: cannot find symbol
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
                                                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:57: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:68: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: [kapt] An exception occurred: java.lang.NullPointerException
    at java.io.File.<init>(File.java:277)
    at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188)
    at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:90)
    at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:65)
    at org.jetbrains.kotlin.kapt3.ProcessorWrapper.process(annotationProcessing.kt:131)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:87)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:45)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:257)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:212)
    at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:95)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:97)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:107)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:84)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:374)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:64)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:365)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:130)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:161)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:96)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:920)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:950)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:919)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404)
    at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

> Task :app:kaptDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 8s
20 actionable tasks: 19 executed, 1 up-to-date

我的项目出了什么问题?

PS:Android Studio 3.1.2上也出现该问题


数据绑定库正在作为 androidx 重构的一部分进行重构。

我从 google 的 Maven 存储库找到了数据绑定注释处理器依赖项链接here.

我从那里构建了实际的 gradle 依赖项。

kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"

Update从 Android studio 3.2.0-beta01 开始,数据绑定不再需要在 gradle 文件中声明其注释处理器依赖项,因为数据绑定能够解决其依赖项。

在最新版本的 Android Studio 中,您只需在应用程序模块的 gradle 文件中启用数据绑定/视图绑定即可。

buildFeatures {
    viewBinding true
    dataBinding true
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Studio 3.2 Canary 16 Kotlin 项目上找不到符号 DataBindingComponent 的相关文章

随机推荐

  • 如何制作对象的防御性副本?

    如何制作包含不可变对象中的可变字段的可变对象的防御性副本 class ImmutableObject private final MutableObject immutable field ImmutableObject MutableOb
  • 如何正确播种随机数生成器

    我正在尝试在 Go 中生成一个随机字符串 这是我到目前为止编写的代码 package main import bytes fmt math rand time func main fmt Println randomString 10 fu
  • 使用 JQuery 在第一个表行之后插入新表行

    我有一张桌子id table 然后第一行id headings 现在我需要在标题行之后直接插入一个新行 我使用下面的代码 headings after table prepend tr tr 但我想我在这里做错了什么 Maybe table
  • SQL查询获取指定范围内的所有数据

    我有一个包含三列的表 报价 id product id 和价格 offer id integer product id integer price decimal 我想触发一个 SQL 查询 它将返回某个价格范围内的报价数量 范围应为 0
  • 不适用于

    我有一个模板 其中
  • 如何将图像转换为灰度而不丢失透明度?

    我在将带有一些透明像素的彩色图像转换为灰度时遇到问题 我已经在该网站上搜索并找到了相关问题 但我无法用来解决我的问题 我定义了一个方法 convertType 如下所示 attempts to convert the type of the
  • Polymer-AngularJS 双向数据绑定

    我创建了一些自定义元素Polymer 我们称之为 x input 它看起来像这样
  • 如何使用 Google Translate API 翻译 Microsoft Excel 中的文本

    我希望这里有人可以帮助我使用谷歌翻译 API 我有一个大约有 80k 行的 Excel 文件 我正在尝试构建一个宏 它可以翻译列中除第一行之外的所有内容 作为示例 我在 Microsoft Excel 中有六列 如下所示 Excel 列标题
  • 不同浏览器的字体大小差异很大

    Update 添加了简单的测试示例http jsfiddle net 7UhrW 1 使用normalize css Chrome WebKit 和 Firefox 有不同的渲染引擎 它们以不同的方式渲染字体 特别是不同尺寸的字体 这并不太
  • 仅显示一次 RDLC 标头

    通常在 RDLC 报告中 如果您使用标题 它将在每个页面上重复 如果我只想在第一页上显示标题而不显示其余部分 有什么解决方案 有什么方法可以告诉哪些页面的标题可见 您不能使用页眉来执行此操作 为此 您需要将标题控件移至正文部分
  • 按中心裁剪图像

    我有一个大小为 218 178 的 PNG 图像 我正在使用 matplotlib 的函数 imread 将其转换为 ndarray 我想裁剪它以获得图像的中间 64X64 部分 我尝试用 np reshape 进行裁剪 但没有意义 我也尝
  • 存储软件文档的最佳方式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 一个明显的答案是 内部维基
  • 动态 Sass 变量

    有什么方法可以根据 html 元素上的类设置颜色变量吗 或者还有其他方法可以实现同样的目标吗 html sunrise accent 37CCBD base 3E4653 flat eceef1 moonlight accent 18c b
  • SSIS 转换——将一列拆分为多列

    我试图找出如何拆分表中的一列 并在将结果导出到 CSV 文件后将其拆分为三列 例如 我有一个名为 fullpatentname 的字段 它以以下文本格式列出 Smith John C 期望将其分为三个单独的列 Smith John C 我很
  • 如何参数化复杂的 OleDB 查询?

    我正在尝试重构一些使用字符串连接来创建 SQL 命令的代码 这使得它容易受到 SQL 注入的攻击 基本上我想做的就是更换所有string sqlToExecute String Format 带有 SQL 命令和 OleDB 参数列表的语句
  • 启动画面前的白屏

    我的问题SplashScreenActivity 当我在手机上启动应用程序时 它会显示白屏约 0 5 秒 这MainActitivy延伸FragmentActivity并在AndroidManifest我声明SplashScreenActi
  • php regex:删除超过双倍的空格

    tags preg replace s s tags 这将删除不止一个空格 我需要删除任何超过两倍空格的内容 我认为 超过双倍空格 是指 3 个或更多空格 tags preg replace s 3 tags 这会将 3 个或更多连续出现的
  • 如何让Python XMLGenerator输出CDATA

    这是 Java 问题的 Python 等效项如何从 Sax XmlHandler 输出 CDATA 部分 Neither xml sax saxutils XMLGenerator or lxml sax ElementTreeConten
  • 如何格式化和遍历一个包含数组的数组,并且每个数组又包含一个数组?

    我正在尝试在数组中包含的数组中创建多维 tests 0 1 2 4 5 6 在测试中的每个数组中 我想要有子数组 使用第一个数组 0 1 2 创建另一个 for 循环来遍历子数组的内容 从 bash 4 3 开始 3 个级别 第一个仅包含一
  • 在 Android Studio 3.2 Canary 16 Kotlin 项目上找不到符号 DataBindingComponent

    我刚刚在 Android Studio 3 2 Canary 16 上创建了一个启用了 Kotlin 的新项目 然后我还启用了数据绑定 但收到一条错误消息 指出找不到 DataBindingComponent 类 这是我的项目等级 Top