【问题标题】:Proguard error: Multiple dex files define ActivityProguard 错误:多个 dex 文件定义了 Activity
【发布时间】:2014-10-14 08:19:20
【问题描述】:

我听说很多人都会遇到这个错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lfoo.bar.MyActivity;

但是我在 StackOverflow 上找到的解决方案都不适合我。

我读到,当您在项目中多次包含同一个库时可能会导致此错误,但奇怪的是 foo.bar.MyActivity 仅在一个库中定义,而该库仅在我的项目。

请注意 foo.bar.MyActivity 是在 Android 库中定义的,而不是在 jar 中。

另一个奇怪的事情是,如果我关闭 ProGuard,我可以正确编译和运行应用程序:该错误仅在 Proguard 完成预 dexing 后出现(因此是编译过程中的第二个)。

这是 proguard 给出的错误的完整堆栈跟踪:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lfoo.bar.MyActivity;
Merged dex A (4111 defs/3053.8KiB) with dex B (47 defs/47.0KiB). Result is 4158 defs/3628.2KiB. Took 0.6s
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
    at com.android.dx.command.dexer.Main.run(Main.java:230)
    at com.android.dx.command.dexer.Main.main(Main.java:199)
    at com.android.dx.command.Main.main(Main.java:103)

您对如何解决我的问题有任何想法吗?

PS:我使用 Ant 编译应用程序。

非常感谢您的宝贵时间。

其他信息: 我使用带有 nbandroid 的 Netbeans 来构建应用程序

【问题讨论】:

    标签: android ant proguard


    【解决方案1】:

    试试这个希望它能解决你的问题

    我遇到了同样的问题,很奇怪,因为它只在使用 Eclipse 时发生(但使用 Ant 没问题)。这就是我修复它的方法:

    右键单击项目名称 选择构建路径 -> 配置构建路径 在 Java Build Path 中,转到选项卡 Order and Export

    取消选中您的 .jar 库

    仅在某些情况下:在 Order 和 Export 选项卡中,我没有任何 jar 库,因此我未选中 Android Private Libraries 项。现在我的项目正在运行。

    【讨论】:

    • 你能告诉我你的maxtargetsdk是什么
    • 并检查您的依赖项
    • 我没有 maxTargetSDK
    • 将你所有的 jars 放在 libs/ 下并清理你的项目。
    • 我认为问题与库的 jar 无关,而与 Ant 从 Java 代码生成的 .jar 文件有关。我无法控制它们,因为每次编译应用程序时都会生成它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多