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


90

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

这是我的项目gradle:

// 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上也会发生此问题


你有什么解决办法吗?
Brijesh Joshi

@BrijeshJoshi在下面看到我的答案
Edijae Crusar

对我来说,真正的错误实际上是在此之后打印出来的。修复该错误后,该错误也会消失。
Mygod

1
在我的情况下,日志中未显示其他错误,但是在检查了差异之后,我在某些kt文件中发现了未导入的注释。修复导入后,进行构建。在kapt处理器中似乎有些问题。
androidguy

1
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false。添加它来grade.properties解决我的问题
MMK

Answers:


58

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

我在这里从google的maven存储库中找到了数据绑定注释处理器依赖项链接。

我从那里构造了实际的gradle依赖关系。

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

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


4
我已删除此依赖项,并尝试了以下所有解决方案,但似乎无济于事
Sanjeev

您使用的是哪个Studio版本?
塞缪尔·罗伯特

Android Studio 3.3 Canary 11(带有gradle 4.10)
Sanjeev,

错误:找不到符号DataBindingComponent,我已经启用了数据绑定功能,不知道出了什么问题
Sanjeev

在gradle中启用了DataBinding?
塞缪尔·罗伯特

61

使用以下设置

Android Studio 3.2.1 Build#AI-181.5540.7.32.5056338,建于2018年10月8日JRE:1.8.0_152-release-1136-b06 x86_64 JVM:JetBrains sro macOS 10.13.3的OpenJDK 64位服务器VM

而DataBinding只需在我的应用程序build.gradle中将其启用即可

apply plugin: 'kotlin-kapt'

然后

    dataBinding {
        enabled = true
    }

而且这在我的gradle.wrapper属性中

android.databinding.enableV2=true

我有同样的错误:

could not find the DataBindingComponent class.

我有一百多个。事实证明,这些错误并不重要,IDE并未显示真正的潜在错误。因此,通过在build.gradle中添加此错误,我增加了Kotlin编译器可以显示的错误数量:

dataBinding {
    enabled = true
}
kapt {
        javacOptions {
            // Increase the max count of errors from annotation processors.
            // Default is 100.
            option("-Xmaxerrs", 500)
        }
    }

突然,在所有这些假错误的下面,我看到了由合并冲突解决方案失败引起的真实错误one


嗨,我该如何在Java项目中做到这一点?
Tosin John,

一堆假错误最初与DataBindingComponent有关。然后当我增加错误大小。我发现使用带匕首的不正确范围是我的问题。
filthy_wizard

这是唯一有效的解决方案。非常感谢。
Deepak Ganachari

使用./gradlew assembleDebug从命令行构建时找不到符号DataBindingComponent
Chetan Chaudhari

3
我一生花了几天时间寻找没有消息的错误...!谢谢队友,你是年度人物:-D
m.zander


21

如果您已经在使用Android Studio 3.2稳定版,则只需删除依赖项,它就已经包含在内。


3
为我解决了,谢谢。他们应该在IDE中添加了工具提示/自动修复。
SpaceMonkey

3
为此加倍。我的错误有所不同,但这是根本原因。如果有人用Caused by: 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) ...
谷歌

20

在Android Studio 3.3.1上出现相同的错误,没有使用Androidx的Kotlin,纯Java

build.gradle包含

    dataBinding {
        enabled true
    }

gradle.properties包含

android.useAndroidX=true
android.enableJetifier=true
android.databinding.enableV2=true

我已经为这个问题解决了几个小时,然后按以下步骤解决了这个问题:

在您的项目中临时为DataBindingComponent声明一个空接口(在中src/main/java/androidx.databinding/DataBindingComponent.java

package androidx.databinding;

public interface DataBindingComponent {
}

让它编译,错误将消失。但是现在将显示实际的根错误。实际上造成所有麻烦但被某种方式吞没的那一个。就我而言,它来自AutoValue,表明我使用不正确

error: Parameter type java.lang.Boolean of setter method should be boolean to match getter

修复此问题然后删除虚拟接口会使编译器再次满意。


非常感谢您的回答。由于这个问题,我付出了很多努力。
Farooq Zaman

非常感谢您
kkl260

1
OMG,谢谢,谢谢,谢谢。这有效!!谢谢!我正在迁移到androidx,在最后阶段,完成后,我遇到了70个类似OP的错误。您的把戏揭示了13个潜在的错误。我是说谢谢吗 :D
Alberto Garrido

现在是Android Studio 3.6.1。仍然需要遵循此技巧才能看到实际错误。:(
克里希

这很棒!谢谢!
加贺

15

就其价值而言,我遇到了类似的问题,这是与数据绑定相关的Room查询错误的结果。


1
对我有用,我禁用了typeconverter进行检查,它也起作用了
Murat VAROL '18

2
谢谢!我也有关于房间的问题。我一直在使用它ArrayList作为返回到查询的地方List

1
这不好。房间中一个完全不相关的问题会导致此问题。
卡森·荷兹海默

这不是Room独有的。您使用的任何其他注释处理器都可能在编译期间引发异常,从而在DataBinding处理器开始工作之前失败。
Vitor Hugo Schwaab

并且该错误仍然掩盖在作为问题陈述的错误之间。
Reejesh PK

14

就我而言,这是一个不好的匕首注释。我将自定义作用域放在模块上,而不是将其放在提供方法上。

¯\_(ツ)_/¯


1
我缺少用于注释值和方法参数的import语句。使用Dagger 2.19,我得到了上面的数据绑定废话。幸运的是,匕首2.21为我指明了正确的方向。
Eugen Pechanec

8

我遇到过同样的问题。

更改KaptannotationProcessor仅用于DataBinding对我来说解决了这个问题。


7

我在更新到android studio 3.2时遇到了这个问题,我将gradle插件从3.2.0更改为3.1.4,并且可以正常工作->我认为这是gradle的问题,肯定会很快更新


尝试更改gradle并删除kapt“ com.android.databinding:compiler:3.1.2”
B.mansouri

我根本没有使用kapt“ com.android.databinding:compiler:3.1.2”,但我发现了问题,这是由于包结构错误并将文件从一个文件夹移动到另一个文件夹所致
Sanjeev

6

匕首也可能是原因。 将匕首版本从2.17更改回2.16可以暂时解决此问题。

讨论:https//github.com/google/dagger/issues/1245

更新资料

Dagger 2.18已经发布,但是不幸的是,在我测试之后,它仍然无法正常工作(我错过了什么吗?)。

更新2

Dagger 2.19也将无法使用,讨论已锁定。

但是在google issuetracke中,有解决方案/解决方法。我测试了,他们工作了。如果要使用最新的Dagger,请检查它。

更新3

匕首问题已在Android Studio 3.3中修复。


我也很确定这是由我/我们的案例中的Dagger2引起的。DataBindingComponent的官方文档甚至提到了dagger:“如果使用Dagger 2,开发人员应扩展此接口,并将扩展的接口注释为Component。” (来源:developer.android.com/reference/android/databinding/…)。但是我不知道该怎么办以及是否可以解决该错误。
muetzenflo

@muetzenflo您的信息似乎很有希望。我将尝试扩展该组件,并查看它是否可以解决该错误。
杜威·里德

@muetzenflo我已经尝试了解决方案,但是没有用。我猜只有在应用程序运行时它才会生效,但是问题发生在编译时。
杜威·里德

2.19已经发布,问题仍然存在
欧内斯特·扎默尔奇克

@ErnestZamelczyk你是对的。但是我在问题跟踪器中找到了一些解决方法。如果您有兴趣,请检查更新的答案。
杜威·里德

5

我终于解决了我的问题,因为我使用的是Android Annotations,他们在1小时前发布了新的4.5.1版本,它们支持Grade Plugin 3.2.0。

我一直在寻找这个错误一个星期,现在我很高兴。希望这对您也有帮助!



2

我尝试classpath 'com.android.tools.build:gradle:3.2.0-beta05' 了有无显式依赖kapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

并且仍然得到相同的异常。

我也尝试了3.3.0-alpha06,但没有任何改变。

更新: 2天后,我解决了问题。我所做的是,由于迁移到AndroidX(导入和XML中的软件包错误等),手动修复了所有有问题的文件。另外,我需要将Glide从4.7更新到4.8。当我修复所有红色文件时,问题消失了。


2

这是我最愚蠢的错误!我实际上已经为数据绑定创建了一个私有变量,这就是导致此问题的原因。

只需使用一个 lateinit var binding,它就可以了。

这可以帮助某人!


这解决了我的问题。谢谢!我花了2个小时找到它,但滚动的幅度不足以看到您的评论。:(
奥利弗·梅斯

很高兴这对您有所帮助!数据绑定错误很难解释!
Kannan_SJD


2

就我而言,如果您使用动态功能模块:

build.gradle(应用程序)

dataBinding {
    enabled true
}

这需要同时在根和子gradle文件上启用(不要忘记添加kapt插件)。


THANNNNKKKKKK YOOOOOUUUUUUUU FFS
ilansas


1

我通过添加解决了错误

android.useAndroidX=true
android.enableJetifier=true

在我的项目的gradle.properties文件中


没为我工作。以上是做什么的?你在哪里找到它?
阿米尔·乌瓦尔

1
@auval android.useAndroidX:设置为时 true,此标志表示您要从现在开始使用AndroidX。如果不存在该标志,则Android Studio的行为就像该标志被设置为falseandroid.enableJetifier:设置true为时,此标志表示您想要工具支持(来自Android Gradle插件)来自动转换现有的第三方库,就像它们是为AndroidX编写的一样。如果不存在该标志,则Android Studio的行为就像该标志被设置为false
Edijae Crusar

不适用于我,我正在使用Android Studio 3.3,这些参数已经存在
Sanjeev

如果您迁移到Android X并使用数据绑定等,则绝对需要这样做。我在一台计算机上进行迁移,但错误发生在另一台计算机上,因为gradle.properties不在源代码控制中
Daniel Wilson

1

就我而言,该问题通过更改解决

androidExtensions.experimental = true

(即gradle DSL作为单线)

androidExtensions {
    experimental = true
}

除了could not find the DataBindingComponent class我也error: incompatible types: NonExistentClass cannot be converted to Annotationkotlinx.android.parcel.Parcelize注解(@Parcelize)相关联

Android Studio 3.3;gradle-4.10.1-all; tools.build:gradle 3.3.0


1

当我在数据绑定中导入类时遇到了同样的问题,当时不存在。也使用

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xmaxerrs" << "1000"
        }
    }
}

接收所有错误消息以查找问题。对于我的项目,它被限制为50。


1

对我来说,我的布局文件中有一个错误。我引用了一个不存在的函数。

android:text="@{() -> sleepTrackerViewModel.nightStrings}"

解决方法如下:

android:text="@{sleepTrackerViewModel.nightStrings}"


0

其他尝试:)我试图将GithubBrowserSample放入Android Studio 3.2(RC3)。即使在主build.gradle中未指定数据绑定版本,我仍然在数据绑定上收到很多奇怪的错误。解决方案是从gradle.properties中删除这两行

org.gradle.jvmargs=-Xmx4536m
android.databinding.enableV2=true

0

我的情况:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

https://services.gradle.org/distributions/gradle-4.10.2-all.zip

我发现,通过从布局中删除数据绑定,重新编译应用程序,然后将数据绑定重新添加到其中,可以解决此问题。

我改变了DataBindingUtil.setContentView(...),只是setContentView(...),降低我的活动布局到最低限度:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"/>

</FrameLayout>

然后逐步添加数据绑定。


0

就我而言,其中一个文件存在导入错误。只需打开该文件即可自动进行导入,然后构建项目。

遗憾的是,AS没有对此给出零指示,也没有提供错误stacktrace。

如果发布的答案无济于事-只需浏览项目中的所有文件并寻找具有错误导入语句的文件。


0

这是jetifier中的错误。这是目前的解决方法,直到下次更新为止。把它放在你的项目gradle中:

buildscript {
    dependencies {
        classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'
    }
}

0

如果使用的是dataroom库,请在DAO类中检查@Dao批注。就我而言,我忘记在RoomDatabase'Dao的界面中添加@Dao。


0

诸如此类的生成接口的构建错误DataBindingComponent通常会引起误解。尝试查找其他任何构建错误,然后首先修复这些错误,然后重新编译。


0

我不得不从Gradle中删除以下导入内容,

androidx.room:room-compiler:2.1.0-alpha06

即使有奇怪的问题,只要尝试将其删除为不必要的导入,它就可以正常工作。


0

如果与Room Database一起使用,请检查所有Dao类,如果您有任何导入问题,或者没有使用来指定必需的TypeConverter @TypeConverters,则此错误具有误导性,如果将项目级别的gradle构建工具版本更新为最新版本,则应予以修复。我使用classpath 'com.android.tools.build:gradle:3.4.0'并正确地得到了错误。


0

就我而言,Room数据库项目类中存在一些错误...错误是关于private修饰符,对于Room db项目类的成员变量应该是公共的。

使用并浏览命令行./gradlew assembleDebug来查看stacktrace。

#Room #Database #Table class #DAO

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.