使用RxJava 2和Retrofit 2,适配器版本问题

2023-12-01

我在 Android Studio 中的现有应用程序模块中添加了一个新的库模块。主要区别是添加了 RxJava 2 和 Retrofit 2。 更新新模块的 build.gradle 后,我开始收到下一个错误:

错误:任务“:app:transformResourcesWithMergeJavaResForBetaNewApiDebug”执行失败。 com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:重复文件 复制到 APK META-INF/rxjava.properties File1 中: C:\Users\Gaket.gradle\caches\modules-2\files-2.1\io.reactivex.rxjava2\rxjava\2.0.2\cfccdd18cdfbe7b4773d42c9f3512eeafbe5cbf9\rxjava-2.0.2.jar 文件2: C:\Users\Gaket.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.1.5\ece7b5d0870e66d8226dab6dcf47a2b12afff061\rxjava-1.1.5.jar

我发现 RxJava 有一些问题(我想尝试 RxJava 2,在这里我看到了 RxJava 1 和 RxJava 2)。添加所有依赖项后问题就出现了,我们不使用RxJava在我们的主要应用程序中。

Update:正如我在下面提到的,我检查了三个主题(您可以在下面看到它)。这个问题:可能重复与我在下面提到的类似:this one。他们都有解决方法,但没有考虑到我在答案中强调的真正问题。还有答案是“目前没有从 Retrofit 2 到 RxJava 2 的生产就绪适配器”(完整细节在下面的答案中描述)。

我检查了几个主题:first是针对具体问题的具体解决方案,second谈论rxbindings,但我不使用它们,其他一些也没有解决我的问题或看起来像是完整的解决方法this one。我尝试用谷歌搜索“rxjava 2 and Retrofit 2”,但没有找到解决方案。

这里是build.gradle图书馆:

apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}



dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',      {
    exclude group: 'com.android.support', module: 'support-annotations'
})

compile "com.android.support:appcompat-v7:$supportLibraryVersion"
compile "com.android.support:recyclerview-v7:$supportLibraryVersion"

compile 'io.reactivex.rxjava2:rxjava:2.0.2'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile "com.makeramen:roundedimageview:1.3.0"

annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
provided 'javax.annotation:jsr250-api:1.0'
compile 'com.jakewharton:butterknife:8.4.0'

testCompile 'junit:junit:4.12'

}

问题是:
为什么会发生这个问题以及处理它的正确方法是什么?


您应该使用官方适配器secondRxJava 版本:

compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0 // works with RxJava 2

适配器有版本这一事实2.*.*正如我所想,并不意味着它旨在与 RxJava 2 一起使用。

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' // won't work with RxJava 2

以前,您应该使用临时版本:这是 Jake Wharton 的存储库Retrofit 2 至 RxJava 2 适配器.

我使用命令发现了这个问题gradlew :app dependencies在 Android Studio 终端中,其中app是我的库模块的名称。在那里我查找了“rxjava”关键字并找到了它的不同版本。

Update:2月21广场发布适配器正式版,为达尚·米斯特里在评论中指出。答案已更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用RxJava 2和Retrofit 2,适配器版本问题 的相关文章

随机推荐

  • AS3 参数

    为什么您认为下面的代码不起作用 您将更改 添加什么以使其正常工作 任何帮助表示赞赏 function TraceIt message String num int trace message num function aa f Functi
  • 如何允许通过 http 匿名推送到 git 存储库?

    我在这里找不到例子 http www kernel org pub software scm git docs git http backend html 是否可以 将其添加到您的 httpd conf 假设 srv git 包含您的存储库
  • 我可以使用 SQLite 作为基于云的网站的数据库存储吗?

    有没有人启动过使用本地 SQLite DB 作为主要数据源的基于云的应用程序 网站 有这方面的警告吗 我的环境 C 3 0 应用程序 目前使用sql server 2008 db 当前数据库大小 30 mb 如果您预计会有大量流量 那么您确
  • Excel 根据名称查找工作表

    这不是一个问题 而是一个解决方案 但我想在这里分享它 因为我在这里得到了我需要的帮助 我想在活动工作簿中查找特定的 Excel 工作表 并按工作表名称进行搜索 我构建这个是为了找到它 这是一个 包含 搜索 如果找到 会自动转到工作表 或者询
  • web2py 中的复合键

    我在 web2py 中定义了一个表 db define table pairing Field user writable True readable True Field uid writable True readable True 该
  • Chart Js V2 在垂直条上绘制水平条(平均)

    我想在垂直条上绘制一个条 绿色条 我正在使用 Chart JS V2 和 Angular 4 我找到了一些画线的代码 但它在 Angular 4 中不起作用 我用过也尝试过使用annotation但它不起作用 添加注释的命令 npm 安装
  • 如何在 Windows XP 上使用 Perl 运行可执行文件?

    如何使用perl运行可执行文件 例如 我想运行一个普通的 notepad exe 我怎样才能做到这一点 这就是我所拥有的 my args system notepad exe system args 0 or die system args
  • 如何实现像uber android一样的可拖动地图,随位置变化而更新

    如何实现像uber一样的可拖动地图 我正在使用谷歌地图 v2 实际上我得到了解决方案这个帖子并在这里分享我的完整解决方案 使用最新代码进行更新还包括使用自动完成功能更改位置 完整的项目可以找到here 逻辑很简单我们需要一个framelay
  • 从文件将用户导入 ASP.NET 成员身份

    我有一个使用 ASP NET 会员资格的网站 我还有一个 Excel 文件 其中包含大约 60 条用户记录 如何将记录导入到成员资格数据库中 而无需在 ASP NET 网站管理工具中键入全部 60 条记录 谢谢 foreach record
  • 使用 App Inventor 2 过滤 url JSON 结果

    我正在尝试使用 App Inventor 2 过滤 JSON url 结果 遵循以下示例代码here1 and here2 但我仍然无法正确完成它 我一次只能得到一个结果 JSON结果为如下图所示形式的数据 field1 alphaNume
  • Z-index 没有覆盖 DOM 中更下方的 div

    我正在尝试创建一个类似工具提示的系统 其中 mouseenter 事件会导致显示一个 div 该 div 将覆盖内容 不幸的是我遇到的问题是内容laterDOM 中的内容在 IE7 中并没有消失 而之前的内容在 z 索引元素后面正确消失 这
  • 查找具有特定字符串的 svn:external 属性的路径?

    我有一个非常大的 Subversion 存储库 大小约为 7 GB 包含来自不同项目的许多文件和目录 现在我对一个项目结构做了一些重大更改 它实际上是一个库 并且我在同一存储库中的很多其他项目中使用它 现在文档很少 我不知道哪个项目实际上真
  • 如何在 REST Assured 中传递默认解析器?

    我正在尝试使用 REST Assured 自动化 API 以下是我在执行 API 测试用例期间遇到的错误 testNotifications com api truValue test notifications Notifications
  • opencv如何在光流后跟踪物体?

    对视频进行光流 lk 后 根据此数据查找对象并跟踪它们的最佳方法是什么 这可能听起来很菜鸟 但我希望能够在物体周围定义清晰的轮廓 所以如果它是一个形状奇怪的瓶子或其他东西 就能够检测边缘 我不确定 LK 是最好的算法 因为它计算一组稀疏的角
  • FCM - 重新调试应用程序后发送消息时出现 Android Xamarin NotRegistered 错误

    我正在 Xamarin Android 中开发一个应用程序 对于通知 我使用 FCM 预发布包 https www nuget org packages Xamarin Firebase Messaging 现在 如果我清理应用程序数据 一
  • 如何将相似名称的文件复制到文件夹中?

    我正在创建一个归档系统 需要将文件分类到文件夹中 我通过在 Excel 工作表中提及文件夹名称来自动创建文件夹 现在我需要复制相应文件夹中具有相似名称的文件 例如 将创建一个名为 Ashley Davidson 的文件夹 一个源文件夹中且文
  • 如何为 php Web 应用程序管理不同国家/地区的不同用户的时区?

    我正在开发网络应用程序 该应用程序有来自不同国家的不同用户 我曾经使用 UTC 时间戳来管理他们的注册 这对我来说可以 但是当我检查帐户的到期日期时出现问题 例如 假设注册有效期为 15 天 来自印度的用户 其注册日期为亚洲 加尔各答时区的
  • html lang 属性的 html 验证错误

    我收到此错误消息 该文档似乎是 Lorem ipsum 文本 但 html 开始标记有 lang en 考虑使用 lang zxx 或变体 从第 5 行第 32 列开始 至第 5 行 第 47 列 html lang en 如需进一步指导
  • Magento simplexml_load_string()错误位置

    我有一个非常烦人的问题 当我对 Magento 商店进行一些修改时 我遇到了 simplexml load string 错误 我很清楚这个错误是由一些错误的 XML 文件引起的 但对我来说非常重要的问题是哪个文件以及它位于哪里 这是我收到
  • 使用RxJava 2和Retrofit 2,适配器版本问题

    我在 Android Studio 中的现有应用程序模块中添加了一个新的库模块 主要区别是添加了 RxJava 2 和 Retrofit 2 更新新模块的 build gradle 后 我开始收到下一个错误 错误 任务 app transf