![](/img/trans.png)
[英]DataBinding not working at Android Studio 2.3,cannot be cast to android.databinding.tool.expr.StaticIdentifierExpr
[英]DataBinding not working after Upgrade Android Studio 2.3
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,并没有做任何改变。 所有插件都是最新的! 现在我的问题是,为什么会发生此错误,我该如何解决? 欢迎任何帮助!
英语不是我的母语。 请原谅我的任何错误。
编辑1
像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 @乔治山@ Sa-Zad Prasla,谢谢!
自Android Studio 2.2起,不推荐使用android-apt
,因此不建议使用apt
。
按照android-apt迁移指南 ,将以下内容添加到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'
}
问题出在警告中,在所有错误中很难看到:
警告:使用不兼容的插件进行注释处理:android-apt。 这可能会导致意外的行为。
如果删除apt,则数据绑定有效。
我也面临同样的问题。 我在用ButterKnife和Dagger!
解决如下
1)从应用程序级别gradle文件中删除:
apply plugin: 'android-apt'
or apply plugin: 'com.neenbedankt.android-apt'
2)从项目级别的gradle文件中删除:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
3)并简单地将“易于注释的处理器”更改为以下依赖项:
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 Mar 7 2017”和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 Instant run将停止在具有较早版本的gradle版本的ADT上运行。
我最近也下载了最新版本的android studio 2.3.3,因为我在版本2.2.3中遇到了相同的错误,即错误:无法解决:com.android.databinding:compiler:2.2.3 ,即使是最新版本,我遇到了同样的错误,我检查了项目结构,在File> Project Structure> Project中 ,Android Plugin版本仍然是2.2.3,将其更改为2.3.3,构建成功并且一切正常。
我通过将gradle的版本更改为解决了这个问题:
classpath 'com.android.tools.build:gradle:3.0.1'
由于我正在使用Android Studio 3.0.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.