Android Dex:意外的顶级例外:已添加

我的应用程序依赖于一个库项目。 这个库项目取决于Android兼容包V4。 我没有导出库项目的依赖项。 在我自己的项目中,我添加了ACL V13作为依赖项,但编译时,我得到的错误基本上存在重复的依赖关系。 我以为不输出库项目的依赖将解决这个问题,但事实并非如此。

我该如何解决这个问题?

编辑

另外,根据Android工具文档 :

android-support-v4.jar和android-support-v13.jar的特例。

我们为这两个库做一个特例,因为-v13里面包含了-v4的完整版本。 如果两者都find了,那么只会使用-v13。

所以它应该只是工作…

如果您在不同的项目(libs项目或标准项目)中使用完全相同的lib jar,apk工具会自动删除重复的项目。

当你有两个相同名称但不在相同版本的库时,问题就开始了。

android-support-v4.jar和android-support-v13.jar文件可以来自不同的版本,因为在不同的支持包版本中总是有相同的名称( http://developer.android.com/tools/extras/support -library.html#笔记 )

我会检查你在你的主项目和你的lib项目中使用完全相同的支持库版本。

为了确保将两个支持库jar(位于android-sdk文件夹中)复制到您的项目库文件夹中。

 {android-sdk}/extras/android/support/v4/android-support-v4.jar AND {android-sdk}/extras/android/support/v13/android-support-v13.jar 

它应该摆脱这个问题。

从库中删除v4软件包。

清理项目。

在我的情况下,我刚刚更新了libs /文件夹中的一个JAR到一个新的版本。

解决这个问题的唯一方法就是运行Build – > Rebuild Project,即在'assembleDebug'之前发出一个'clean'任务。

那么,在我的故事中,我必须删除相同的模块依赖关系,将其添加到库中,然后将该库作为依赖项添加到每个模块。

所以:

  • 模块a:取决于android-v4(并将其放在lib文件夹中)
  • 模块b:取决于android-v4(并将其放在lib文件夹中)

    1. 添加到项目“android-v4”(从第一个模块ex)的库。 在模块b的lib文件夹中删除它。

    2. 在模块中删除a和b依赖的android-v4

    3. 添加到每个模块的依赖 – >库 – > android-v4(你在2步创build)

我不知道这是否是正确的解决scheme,但它的工作原理。

您是否尝试将库从v4到v13的依赖关系更改并导出?

有时候,简单地删除v4支持库不起作用,您还需要重build或项目。