我通过它的maven仓库将Zendesk mobile sdk集成到我的项目中,它不会再构建了。它与我正在使用的毕加索画库有某种冲突。在构建过程中,我得到了这个错误:
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/squareup/picasso/Action$RequestWeakReference.class
我在应用程序文件夹上运行了../gradlew dependencies
,这是我在zendesk模块下找到的:
\--- com.zendesk:sdk:1.0.0.1
+--- com.squareup.retrofit:retrofit:1.4.1
| \--- com.google.code.gson:gson:2.2.4
+--- com.squareup.picasso:picasso:2.3.2
+--- com.android.support:support-v4:20.0.+ -> 21.0.3 (*)
\--- com.android.support:appcompat-v7:20.0.+ -> 21.0.3 (*)
所以zendesk也在使用毕加索,但与我的项目中使用的版本不同。我试着把毕加索排除在zendesk之外,就像这样:
compile (group: 'com.zendesk', name: 'sdk', version: '1.0.0.1'){
exclude group: 'com.squareup.picasso'
}
但这会在应用程序的其他组件中导致运行时异常。我得到了一个与库完全无关的类的NoDefFoundError。
有没有人知道如何解决这个问题?
发布于 2015-03-09 16:34:01
在添加com.android.support:multidex
依赖项时,您实际上添加了一些与其他依赖项冲突的依赖项。
我通过以下方式解决了这个问题:
搜索这个类,在你的例子中,"RequestWeakReference.class“(在AndroidStudio中只需在Windows上按Ctrl+N或在Mac上按CMD-O )看看哪个jar包含它- Android Studio将在所有版本的popup.Exclude中编写它,例如:
android {
configurations{
all*.exclude module: 'servlet-api'
}
}
https://stackoverflow.com/questions/28168063
复制相似问题