【问题标题】:Android Build fail - java.lang.IllegalArgumentException: already added: Lcom/google/api/client/escape/CharEscapers;Android 构建失败 - java.lang.IllegalArgumentException:已添加:Lcom/google/api/client/escape/CharEscapers;
【发布时间】:2012-01-16 06:59:27
【问题描述】:

我只是为我的 android 应用程序准备了小更新,但是当我尝试构建我的应用程序(在调试模式下)时,我遇到了这个奇怪的错误。如果更聪明的人可以查看此内容以找出可能出现的问题,那就太好了。我正在清理/重建/修复项目属性,但没有结果。我不知道发生了什么:(。也许这里的任何人都会发生类似的事情? 如果这可以帮助我使用以下库:adMob(4.1.1)、openfeint 和 libgdx。

这里是构建日志:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/google/api/client/escape/CharEscapers;
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.dx.command.dexer.Main.run(Main.java:206)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at java.lang.reflect.Method.invoke(Method.java:616)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:179)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:745)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:647)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:282)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:363)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.resources.Project$1.run(Project.java:545)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:524)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.resources.Project.build(Project.java:123)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.ide.eclipse.adt.internal.project.ProjectHelper.build(ProjectHelper.java:869)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:146)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:853)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:702)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:924)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1128)
[2011-12-08 21:56:42 - JellyBallsFree] Dx   at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[2011-12-08 21:56:42 - JellyBallsFree] Dx 1 error; aborting
[2011-12-08 21:56:42 - JellyBallsFree] Conversion to Dalvik format failed with error 1

【问题讨论】:

  • 伙计们,你能在 StackOverflow 上用英文吗?
  • 您是否在为您的项目使用 Gradle 构建?我对重复的 jar 文件(远程和本地)有类似的问题......
  • 当一个 .class 文件以某种方式落在我的一个 src 目录下时(我使用 Ant 和 Eclipse,所以它是其中之一或我),我看到了这个错误。绝望中,我做了一个git clean -dfx(除非你知道其中的含义,否则不要复制和粘贴),然后看到错误的类文件被冲洗掉了。

标签: java android build adt dalvik


【解决方案1】:

您有两次包含相同的 jar 库。检查您的应用程序和所有引用的 Android 库,并确保您将所有 jar 包都包含一次。

如果这没有帮助,请查看http://tools.android.com/knownissues。具体看构建系统部分中描述的第一个问题。

您也可以阅读这篇文章:How to fix the “Conversion to Dalvik format failed with error 1"

【讨论】:

  • 感谢您提供的线索。我仔细检查了所有内容,并添加了两次开放假动作。第一个作为源文件,第二个作为 jar 库。不知道为什么它在过去几个月中构建得很好,但是我有可能在上次构建和现在之间更新 adt(不完全确定)。无论如何,再次感谢(也提供其他链接):)
【解决方案2】:

升级到 R17 后出现此错误。

我的原因不同(即不是 R15 中发生的 *_src 问题)。我的“libs”文件夹中有两个不同版本的库。现在看来,Android 插件会自动将“libs”中的任何 jars 添加到 Package Explorer 的“Android Dependencies”部分。删除旧 jar 解决了问题。

【讨论】:

    【解决方案3】:

    我有同样的问题,这里是解决方案:

    转到顶部的“构建”和“清理项目”,然后在“重建项目”之后它对我有帮助!您也可以转到“文件”和“无效缓存”并重新启动 Android Studio

    当然,请确保清单没问题,并且没有重复包含!

    【讨论】:

      【解决方案4】:

      对于 SDK 更新到 r17 后出现的错误,您可以查看以下内容: http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

      【讨论】:

      • 谢谢!我怎样才能更新你 10 次? eclipse 报告错误而不说到底发生了什么,这真的很烦人!
      【解决方案5】:

      检查重复的 jar 文件。
      检查 project.properties 中的 lib 条目。
      清理所有包含的库并从头开始构建。

      【讨论】:

        【解决方案6】:

        当我添加 android Ocr Api (tess-two) 并导入使用此 API 的示例应用程序时遇到了同样的问题,但是示例应用程序和 tess-two api 具有相同的包,这就是我面临这个问题的原因,所以我删除了重复的我的示例应用程序中的软件包,它工作正常。

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题。就我而言,我的 libs 文件夹中有 2 个 jar,比如说 A 和 B。A 是我创建的自定义 jar,并且已经包含了 B。在我更新到 R17 之前,这不是问题。
          解决方案:我从库中删除了 B。

          【讨论】:

            【解决方案8】:

            在 google_play_services/samples 中有一个地图项目。将 jar 从 libproject 安装到 maven 存储库,将依赖项添加到 maps 项目并发现该错误。在依赖部分使用提供的范围可以解决问题。

            【讨论】:

              猜你喜欢
              • 2013-12-01
              • 1970-01-01
              • 1970-01-01
              • 2018-11-07
              • 2013-03-12
              • 2015-08-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多