升级Android Studio 2.3后DataBinding无法正常工作

DataBinding在我的项目中工作得很好,但今天升级Android Studio 2.3之后。 运行“应用程序”失败,因为以下错误:

Error:(15, 40) Error: package com.javan.myrecorder.databinding not exist. import com.javan.myrecorder.databinding.FragmentEventsBinding; :app:compileMockDebugJavaWithJavac FAILED 

我只是升级android工作室,并没有改变任何东西。 所有的插件是最新的! 现在我的问题是,为什么发生这个错误,我怎么能解决它? 任何帮助,欢迎!

英语不是我的母语; 请原谅我的错误。


EDIT1

像android项目googlesamples / android-architecture

  • git checkout todo-databinding
  • 然后运行./gradlew assembleDebug生成,由于以下错误生成失败:

完成建立日志


EDIT2 我已经解决了这个问题,因为在升级到Gradle 2.3之后破坏了数据绑定

build.gradle(app)添加

 apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' ..balabala dependencies { apt 'com.android.databinding:compiler:2.3.0' } 

我的项目中的一些文件:

gradle-wrapper.properties

 #Mon Mar 06 10:59:04 CST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 

@petrnohejl @George Mount @ Sa-Zad Prasla,谢谢!

android-apt ,因此使用apt已被弃用,因为Android Studio 2.2。
遵循android-apt迁移指南 ,将下列内容添加到您的build.gradle

 dependencies { annotationProcessor 'com.android.databinding:compiler:2.3.0' } 

如果您使用的是Kolin,请使用:

 apply plugin: 'kotlin-kapt' dependencies { kapt 'com.android.databinding:compiler:2.3.0' } 

问题出现在所有错误中难以看到的警告:

警告:使用不兼容的插件进行注释处理:android-apt。 这可能会导致意外的行为。

如果你删除apt,数据绑定工作。

我也面临同样的问题。 我正在使用黄油刀和匕首!

解决如下

1)从应用程序级别的gradle文件中删除:

应用插件:'android-apt'或应用插件:'com.neenbedankt.android-apt'

2)从项目级别中移除gradle文件:

classpath'com.neenbedankt.gradle.plugins:android-apt:1.8'

3)并简单地将“apt to annotationProcessorchange”更改为以下依赖关系:

apt'com.jakewharton:butterknife-compiler:8.5.1',apt“com.google.dagger:dagger-compiler:2.5”

至:

annotationProcessor'com.jakewharton:butterknife-compiler:8.5.1',annotationProcessor“com.google.dagger:dagger-compiler:2.5”

在Android Studio v2.3更新之后,数据绑定也破灭了。 GoLang Bind插件变得无法生成库.aar文件

我们的问题通过GoMobile版本“+ eb90329 2017年3月7日”更新和GoBind插件恢复到版本“0.2.6”(尽管当前版本是“0.2.8”)的组合得到解决。

更新GoMobile:

  $ go get -u -x golang.org/x/mobile/cmd/gomobile $ gomobile init -x 

在build.gradle中还原GoBind插件:

  plugins { id "org.golang.mobile.bind" version "0.2.6" } 

此解决方案正在使用版本为1.7.1和1.8以及Android Studio版本2.1.2,2.2.3和2.3的系统。

两件事恢复您的gradel-wrapper.properties distributionUrl到“https://services.gradle.org/distributions/gradle-2.14.1-all.zip”更改gradle版本类路径为以前的版本“'com.android.tools .build:gradle这个:2.2.3' ”

PS即时运行将停止使用较旧的gradle版本的ADT。

我最近也下载了最新版本的android studio 2.3.3,因为我在版本2.2.3中得到了同样的错误,即错误:无法解析:com.android.databinding:compiler:2.2.3 ,即使在最新版本,我得到了同样的错误,我检查了项目结构,在文件>项目结构>项目中 ,Android插件版本仍然是2.2.3,我将其更改为2.3.3,构建成功,一切运行正常。