改造两个版本

时间:2015-12-28 15:31:44

标签: android gradle android-gradle retrofit

我得到的模块使用了新的Retrofit 2,以及依赖于Retrofit 1.9的库...

所以我的build.gradle dependencies看起来像

compile project(':shop') // Module depend on retrofit2

compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile(name: 'dotpay-sdk', ext: 'aar') // Lib depend on retrofit1.9

然而,当我从lib调用方法时,我很可能从NoClassDefFoundError得到RestAdapter

是否可以选择使用相同库的版本?

1 个答案:

答案 0 :(得分:2)

如果没有新版本的Retrofit,在同一个项目中使用这两个库并不容易,因为它们会因为它们具有相同的包而导致冲突。在最终版本中,Retrofit和OkHttp将附带该软件包的版本。您可以在此处详细了解:http://jakewharton.com/java-interoperability-policy-for-major-version-updates/

如果您确实需要同时使用这两个版本,则可能会出现一些问题:https://github.com/square/retrofit/issues/1152