17

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 studio并没有改变任何东西。所有插件都是最新的!现在我的问题是,为什么会出现这个错误,我该如何解决?欢迎任何帮助!

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


编辑1

像 android 项目googlesamples/android-architecture

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

完整的构建日志


EDIT2我已经通过在升级到 Gradle 2.3 后遵循 Data Binding 解决了这个问题

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,谢谢!

4

7 回答 7

14

android-apt因此使用apt自 Android Studio 2.2 以来已被弃用。
按照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'
}
于 2017-03-17T22:44:44.053 回答
2

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

解决如下

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 to annotationProcessor”更改为以下依赖项:

 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"
于 2017-04-14T08:36:07.783 回答
2

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

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

如果您删除 apt,数据绑定将起作用。

于 2017-03-05T17:45:10.083 回答
1

在更新到 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"
  }

此解决方案适用于 go 版本 1.7.1 和 1.8 以及 Android Studio 版本 2.1.2、2.2.3 和 2.3 的系统。

于 2017-03-10T06:34:56.620 回答
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'"

PS Instant run 将停止使用旧 gradle 版本在 ADT 上运行。

于 2017-03-03T19:20:00.943 回答
0

我最近也下载了最新版本的 android studio 2.3.3,因为我在 2.2.3 版本中遇到了同样的错误,即Error:Failed to resolve: com.android.databinding:compiler:2.2.3,即使在最新版本中,我遇到同样的错误,我检查了项目结构,在File>Project Structure>Project中,Android Plugin 版本仍然是 2.2.3,我将其更改为 2.3.3 并且构建成功,一切正常.

于 2017-07-13T07:08:18.400 回答
-2

我通过将我的 gradle 版本更改为:

classpath 'com.android.tools.build:gradle:3.0.1'

由于我使用的是 Android Studio 3.0.1

于 2018-01-25T19:56:39.187 回答