Android 使用ant或Eclipse编译时出现多个dex文件错误

Android 使用ant或Eclipse编译时出现多个dex文件错误,android,ant,dex,Android,Ant,Dex,我无法生成我的应用程序 我正在运行今天下载的最新构建工具,这是在更新之后开始的 -dex: [dex] Converting compiled files and external libraries into /Users/rob/Repos/my_app/bin/classes.dex... [dx] [dx] UNEXPECTED TOP-LEVEL EXCEPTION: [dx] com.android.dx.util.DexExcep

我无法生成我的应用程序 我正在运行今天下载的最新构建工具,这是在更新之后开始的

-dex:
   [dex] Converting compiled files and external libraries into 
         /Users/rob/Repos/my_app/bin/classes.dex...
    [dx] 
    [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
    [dx] com.android.dx.util.DexException: Multiple dex files define 
         Lcom/robaldred/myapp/About$1;
我尝试过清理和重建,我也尝试过Eclipse,但它给出了相同的错误。
有人有什么想法吗?我现在遇到了麻烦。

昨天我的系统(和另一个正在工作的系统)发生了一些事情,SDK想推动平台工具更新,但后来我根本无法使用它,等等


最后我把我的SDK移到一边,重新安装了它,然后一切都像以前一样工作了。我没有你的dex的具体问题,但我怀疑昨天的更新推送破坏了很多东西。祝你好运。

我想bin中的目录从

com/XXX/XXX


您可以清理项目并解决它。

我花了数小时清理、创建新项目、卸载和重新安装sdk。。。什么都没用。我也没有任何库项目(我只是在lib下有一些jar文件)。然而,最终我修复了它,我的步骤是:

  • 搜索并清理所有.apk文件(我在.svn文件夹中有一些…grr..一些开发人员在svn下添加了一些与构建相关的文件夹)
  • 删除bin和gen
  • 从eclipse项目属性中删除对库JAR的引用,按ok。然后再把它们加回去。我有一些java编译的jar库。我不知道为什么我必须删除它并将其添加回去,但这确实是必要的
您可以:

  • 删除文件夹
    ,以及文件

  • 在Eclipse中删除项目(右键,
    ),而不删除源文件

  • 创建一个新的Android项目,并从以前的源代码中选择

  • 如果需要,在生成路径中导入外部LIB


它应该可以解决这个恼人的问题。

我也看到了同样的问题。如果您使用的是Android Studio,您需要确保在编译时任何项目中都没有包含“bin”或“gen”文件夹


删除此项后,我能够成功编译

请非常小心附加到项目中的所有源文件。 我在两种情况下发现了这个问题:

  • 当我有两个不同的android支持库jar时
  • 当我过去不小心把一些Facebook
    src
    放进我的src目录,而不是作为一个库
  • 所以,所有不应该将bin/目录放入类路径的答案都是正确的,但在出现如下错误的情况下:

    [2013-08-02 20:22:03 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
    [2013-08-02 20:22:03 - Activity] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
    

    您应该在项目/库中查找相同的JAR(在大多数情况下,这应该由Android Eclipse环境创建),或者查看附加到项目的所有源代码,以查找的多次出现(如上面的示例代码所示)如果由于多个DEX文件而出现问题,则属于
    com.facebook.android.AsyncFacebookRunner


    删除整个目标文件夹并重新生成项目。这不会影响您的项目,因为目标文件夹中的所有内容都已重新生成

    将实现文件树(包括:['.jar'],目录:“libs”)更改为 在应用程序gradle.build>dependencies中提供了文件树(包括:['.jar'],dir:'libs')


    确保它在模块设置>依赖项{include=[*jar]dir=libs}中也已更改。它旁边必须有一个提供的范围,而不是实现。

    嘿,是的,这似乎是可能的。我已经重新安装了所有的sdk和工具,似乎已经解决了这个问题。似乎更新到r14会导致现有工作区出现问题。不过,我希望有更多的帖子,也许是一些具体的、怪异的东西。新的r14安装是好的。感谢您的inputcleaning并没有解决这个特定问题,正如在最初的问题中提到的,在没有移除JAR的情况下为我工作。在我的例子中,有两个外部JAR都定义了一些相同的类。从我的
    libs
    目录中删除一个JAR修复了我的错误。
    [2013-08-02 20:22:03 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
    [2013-08-02 20:22:03 - Activity] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;