我得到的模块使用了新的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
。
是否可以选择使用相同库的版本?
答案 0 :(得分:2)
如果没有新版本的Retrofit,在同一个项目中使用这两个库并不容易,因为它们会因为它们具有相同的包而导致冲突。在最终版本中,Retrofit和OkHttp将附带该软件包的版本。您可以在此处详细了解:http://jakewharton.com/java-interoperability-policy-for-major-version-updates/
如果您确实需要同时使用这两个版本,则可能会出现一些问题:https://github.com/square/retrofit/issues/1152