首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android仪器测试调试误差

Android仪器测试调试误差
EN

Stack Overflow用户
提问于 2016-02-15 10:09:26
回答 1查看 371关注 0票数 2

我试图用Espresso进行一些测试,但是当我编译测试时,gradle返回一个错误:

错误:Gradle:将字节码转换为dex的错误:原因: com.android.dex.DexException:多个dex文件定义Landroid/databinding/DataBindingComponent;

我假设存在一些依赖关系错误,并列出了如下所示的依赖项:

.\gradlew app:dependencies

奇怪的是:我正在使用1.0-rc4版本的数据绑定,但是在列出的依赖项中,有1.0-rc3:

代码语言:javascript
复制
default - Configuration for default artifacts.
+--- com.android.databinding:library:1.0-rc3                                     
|    +--- com.android.databinding:baseLibrary:1.0-rc3
|    \--- com.android.support:support-v4:21.0.3 -> 23.1.1
|         \--- com.android.support:support-annotations:23.1.1
+--- com.android.databinding:adapters:1.0-rc3
|    \--- com.android.databinding:library:1.0-rc3 (*)
+--- com.android.support:appcompat-v7:23.1.1
|    \--- com.android.support:support-v4:23.1.1 (*)
+--- com.android.support:recyclerview-v7:23.1.1
|    +--- com.android.support:support-annotations:23.1.1
|    \--- com.android.support:support-v4:23.1.1 (*)
+--- com.google.dagger:dagger:2.0    
|    \--- javax.inject:javax.inject:1
\--- com.trello:rxlifecycle-components:0.4.0
     +--- com.trello:rxlifecycle:0.4.0
     |    +--- com.jakewharton.rxbinding:rxbinding:0.3.0
     |    |    +--- com.android.support:support-annotations:23.1.0 -> 23.1.1
     |    |    \--- io.reactivex:rxjava:1.0.14 -> 1.0.16
     |    \--- io.reactivex:rxjava:1.0.16
     +--- com.android.support:appcompat-v7:23.1.1 (*)
     \--- io.reactivex:rxjava:1.0.16 

provided - Classpath for only compiling the main sources.
+--- com.android.databinding:compiler:1.0-rc4                                     
|    \--- com.android.databinding:baseLibrary:1.0-rc4
\--- javax.annotation:javax.annotation-api:1.2

这个1.0-rc3是从哪里来的?在我的整个项目中没有这样的字符串"rc3“(除了生成的dex-缓存文件)。

UPD:

我认为这是一个android gradle插件问题,因为相同的代码适用于gradle 1.5,但是对于gradle 2.0.0-beta4 2和2.0.0-beta4 4则失败。

UPD2:

解决了问题。

项目相对较旧,android-databinding插件是从gradle 1.5.0-beta1以来从beta发展而来的。

现在,要启用数据绑定,您应该只添加

代码语言:javascript
复制
dataBinding {
    enabled = true
}

在你的android{}部分。

因此,如果您面临这样的问题,请确保从build.gradle文件中删除这些字符串:

1) apply plugin: 'com.android.databinding'

2) classpath 'com.android.databinding:dataBinder:1.0-rc4'

3) apt 'com.android.databinding:compiler:1.0-rc4'

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 06:02:37

解决了问题。

项目相对较旧,android-databinding插件是从gradle 1.5.0-beta1以来从beta发展而来的。

现在,要启用数据绑定,您应该只添加

代码语言:javascript
复制
dataBinding {
    enabled = true
}

在你的android{}部分。

因此,如果您面临这样的问题,请确保从build.gradle文件中删除这些字符串:

1) apply plugin: 'com.android.databinding'

2) classpath 'com.android.databinding:dataBinder:1.0-rc4'

3) apt 'com.android.databinding:compiler:1.0-rc4'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35406509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档