升级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,构建成功,一切运行正常。