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文件夹中)
-
添加到项目“android-v4”(从第一个模块ex)的库。 在模块b的lib文件夹中删除它。
-
在模块中删除a和b依赖的android-v4
-
添加到每个模块的依赖 – >库 – > android-v4(你在2步创build)
-
我不知道这是否是正确的解决scheme,但它的工作原理。
您是否尝试将库从v4到v13的依赖关系更改并导出?
有时候,简单地删除v4支持库不起作用,您还需要重build或项目。