DataBinding在我的项目中运行得非常好,但是在今天升级Android Studio 2.3之后。 运行'app'失败,因为出现以下错误:
Error:(15, 40) Error: package com.javan.myrecorder.databinding not exist.
import com.javan.myrecorder.databinding.FragmentEventsBinding;
:app:compileMockDebugJavaWithJavac FAILED
我刚升级android studio并没有改变任何东西。所有插件都是最新的!现在我的问题是,为什么会发生这个错误,我该怎么解决呢?欢迎任何帮助!
英语不是我的母语;请原谅我的任何错误。
EDIT1
喜欢android项目googlesamples/android-architecture
git checkout todo-databinding
./gradlew assembleDebug
进行构建,构建因以下错误而失败:EDIT2 我已按照Data Binding broke after upgrade to 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,谢谢!
答案 0 :(得分:14)
android-apt
因此自Android Studio 2.2起已弃用apt
在android-apt migration guide之后,将以下内容添加到您的build.gradle
:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
annotationProcessor 'com.android.databinding:compiler:2.3.0'
}
如果您使用的是Kolin,请使用:
apply plugin: 'kotlin-kapt'
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
kapt 'com.android.databinding:compiler:2.3.0'
}
答案 1 :(得分:2)
问题出现在所有错误中很难看到的警告:
警告:使用不兼容的插件进行注释处理:android-apt。这可能会导致意外行为。
如果删除apt,则数据绑定有效。
答案 2 :(得分:2)
我也面临同样的问题。 我正在使用ButterKnife和Dagger !!
解决方法如下
1)从app level 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"
答案 3 :(得分:1)
随着Android Studio v2.3的更新,数据绑定也为我们打破了。 GoLang Bind插件无法生成库.aar
文件
我们的问题通过结合使用GoMobile版本" + eb90329 2017年3月7日和#34;更新和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的系统。
答案 4 :(得分:0)
两件事 将gradel-wrapper.properties distributionUrl恢复为" https://services.gradle.org/distributions/gradle-2.14.1-all.zip" 将gradle版本类路径更改为以前的版本"' com.android.tools.build:gradle:2.2.3'"
P.S。使用较旧的gradle版本,即时运行将停止在ADT上工作。
答案 5 :(得分:0)
我最近也下载了最新版本的android studio 2.3.3,因为我在版本2.2.3中遇到了同样的错误,即错误:无法解决:com.android.databinding:编译器:2.2.3 ,即使在最新版本中,我也遇到了同样的错误,我检查了项目结构,在文件>项目结构>项目中,Android插件版本仍为2.2.3,我将其更改为2.3.3并且构建成功并且一切正常。
答案 6 :(得分:-2)
我通过将我的gradle版本更改为:
来解决了这个问题classpath 'com.android.tools.build:gradle:3.0.1'
因为我使用的是Android Studio 3.0.1