我的应用程序取决于库项目。此库项目取决于Android兼容包V4。我有 NOT 导出库项目的依赖项。在我自己的项目中,我已经添加了ACL V13作为依赖项,但是在编译时我得到的错误基本上是重复的依赖项。我认为不导出库项目的依赖会解决这个问题,但事实并非如此。
我该如何解决这个问题?
修改
另外,根据Android tools docs:
android-support-v4.jar和android-support-v13.jar的特例。
我们为这两个库创建了一个特例,因为-v13包含一个 完整版的-v4里面。如果两者都找到,那么只有-v13 使用
所以它应该有用......
答案 0 :(得分:19)
如果你在不同的项目(libs项目或标准项目)中使用完全相同的lib jar,那么apk工具会自动删除重复的项目。
当您有两个具有相同名称但不具有相同版本的库时,问题就会开始。
android-support-v4.jar和android-support-v13.jar文件可以来自不同的版本,因为在不同的支持包发布中总是有相同的名称(http://developer.android.com/tools/extras/support-library.html#Notes)
我会检查你在主项目和lib项目中使用完全相同的支持库修订版。
要确保将两个支持库jar(位于android-sdk
文件夹中)复制到项目libs文件夹中。
{android-sdk}/extras/android/support/v4/android-support-v4.jar
AND
{android-sdk}/extras/android/support/v13/android-support-v13.jar
它应该摆脱这个问题。
答案 1 :(得分:8)
从库中删除v4包。
清理项目。
答案 2 :(得分:4)
就我而言,我刚刚将libs /文件夹中的一个JAR更新为新版本。
修复它所需要的只是运行Build - >重建项目,即在'assembleDebug'等之前发出'干净'任务。
答案 3 :(得分:3)
好吧,在我的故事中,我不得不删除相同的模块依赖项,将其添加到库中,然后将此库作为依赖项添加到每个模块中。
所以:
模块b:取决于android-v4(并将其放在lib的文件夹中)
添加到项目“android-v4”的库中(对于第1个模块的ex)。在模块b lib文件夹中删除它。
删除模块a和b依赖android-v4
添加到每个模块依赖 - >库 - > android-v4(你在2步中创建的)
我不确定它是否是正确的解决方案,但它确实有效。
答案 4 :(得分:1)
您是否尝试将库的依赖关系从v4更改为v13并将其导出?
答案 5 :(得分:0)
有时只是删除v4支持库不起作用,您还需要重建或项目。