920

在 Eclipse 中的 Android 应用程序中,我收到以下错误。

意外的顶级异常:
java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser;
....
转换为 Dalvik 格式失败,错误 1

仅当我将特定的外部 JAR 文件添加到我的项目时才会出现此错误。我为可能的解决方案搜索了很长时间,但没有一个可能的解决方案有效。

我什至尝试更改为 Android 1.6 而不是 1.5(我使用的当前版本)。

4

71 回答 71

826

转到项目»属性»Java构建路径»库并删除除“Android XY”之外的所有内容(在我的情况下为Android 1.5)。单击确定。转到项目»清理»清理下面选择的项目»选择您的项目并单击确定。那应该行得通。

您也可能在项目文件夹中的某个位置有一个 JAR 文件(我已将 Admob JAR 文件复制到我的 src 文件夹中),然后将其添加为 Java 路径库。它没有出现在 Package Explorer 下,所以你不会注意到它,但它确实被计算了两次,导致了可怕的 Dalvik 错误 1。

另一个可能的原因可能是包名冲突。假设您有一个包com.abc.xyz和一个在此包中命名的类A.java,以及另一个包含相同的库项目(已添加到此项目的依赖项)com.abc.xyz.A.java,那么您将得到完全相同的错误。这意味着,您对同一个文件有多个引用,A.java并且无法正确构建它。

在其他方面,如果您不小心或故意在类路径文件中手动编辑/添加任何内容,则可能会发生这种情况。在某些情况下,我们可能会手动将 android.jar 路径添加到类路径文件以生成 java doc。在 javadoc 生成后删除代码可以正常工作。如果仍然出现任何问题,请也检查一下。

于 2010-08-02T16:19:33.540 回答
273

我解决了这个问题。

这是一个 JAR 文件冲突。

似乎我的构建路径上有两个 JAR 文件,它们包含相同的包和类。

smack.jarandroid_maps_lib-1.0.2

从其中一个 JAR 文件中删除这个包解决了这个问题。

于 2010-04-21T07:55:13.320 回答
126

Windows 7 解决方案:

确认问题是由文件
[Android SDK安装目录]\tools\proguard\bin\proguard.bat中的ProGuard命令行引起的

编辑以下行将解决问题:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
于 2011-08-10T00:46:54.947 回答
94

您可以通过在导出(未)签名的 Android 应用程序时关闭菜单>“项目”>“自动构建”轻松解决此问题(使用 Eclipse Android 开发人员工具,构建:v22.0.1-685705)。之后,不要忘记再次打开它。

于 2013-08-28T09:30:19.123 回答
53

如果您有 ADT 修订版 12+,您应该从 4.4 -> 4.6 更新您的 proguard(如此所述)。此外,您应该将 ...\bin\proguard.bat 文件保留为原始形式。

只需从网上下载它,然后将下载包中的 lib 文件夹复制到:

【Android SDK安装目录】\tools\proguard\lib

于 2011-09-12T10:33:42.043 回答
41

编辑(新解决方案):

看起来以前的解决方案只是一个旁路。我终于设法永久解决了这个问题:在我的情况下,我的项目和我的项目中引用的 Facebook 项目中的 android-support-v4 文件不匹配。

我通过执行 Lint 检查发现了这个错误(Android 工具 / 运行 Lint:检查常见错误)

我之前的解决方案:

我在这个网站上尝试了任何可能的解决方案 - 没有任何帮助!!!

最后我在这里找到了答案: https ://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

简单的步骤:

转到项目 - >取消选中自动构建

转到 Project -> Clean... ,清理库项目和您的应用程序项目

将您的应用导出为已签名的 APK,而自动构建仍处于禁用状态

于 2013-06-26T19:08:28.243 回答
30

这是另一种情况和解决方案:

如果您最近在更新 ADT for Eclipse 后遇到此问题:

  1. 在您的应用项目中,检查任何指向您的库项目的链接源文件夹(它们的名称格式为“LibraryName_src”)。
  2. 选择所有这些项目,右键单击,选择“构建路径”->“从构建路径中删除”。
  3. 选择“ Also unlink the folder from the project ”,然后单击“ Yes ”。
  4. 清理、重建和重新部署项目。

原因似乎是某些以前版本的 ADT 将库项目源文件夹链接到“子”项目,而当前的 ADT/Dex 组合不再与该解决方案兼容。

编辑:Android 开发博客条目证实了这一点,特别是这一点- 请参阅第 8 段起。

于 2011-11-12T17:53:14.827 回答
29

转到项目,然后取消选中“自动构建”。然后尝试导出项目,错误就消失了。

于 2014-09-18T06:10:59.753 回答
27

如果您Android.jar在构建路径中添加了文件,也可能是由于 Eclipse 中的意外快速修复造成的。右键单击Project -> build path -> configure build path -> android.jar删除它,删除。

于 2011-06-19T23:48:08.007 回答
25

每次出现此错误时,简单地清理项目都对我有用。

于 2010-12-09T20:16:01.170 回答
16

在测试所有解决方案四个小时后,我今天找到了我自己的唯一解决方案,它是此处提供的许多解决方案的组合:

  • Delete来自 Eclipse 的项目
  • 从项目文件夹\bin中删除文件\gen
  • 删除对库的引用到.classpath根项目文件夹中的文件中
  • 使用命令行重启 Eclipse:eclipse -clean
  • Import项目
  • 右键单击项目 - 选择Properties> Java Build Path>Libraries并删除除Android XX.Y
  • 最后cleanproject,等待自动Building或者Build
  • 启动,现在它可以工作了!至少对我来说...

我一次尝试了每一步和许多组合,但只有所有步骤的连续性一次成功!我希望我不会再遇到这种情况了...

于 2012-03-08T09:32:57.863 回答
14

只是对于仍然有这个问题并且他们已经尝试了上述答案但仍然得到错误(这是我的情况)的其他人,那么我的解决方案是从 Eclipse 中删除该项目并再次重新导入它。

这使得 Android 库再次添加到我引用的库中,所以现在我引用了两个 Android JAR 文件,因此我删除了其中一个,现在它可以正常编译了。

解决方法:从Eclipse IDE中删除项目,然后重新导入,然后检查上述解决方案。

于 2011-01-25T00:37:24.540 回答
10

今天自己遇到了这个问题。清理和重建并没有解决问题。删除和重新导入项目也无济于事。

我终于将其追溯到我的 .class 文件中添加的错误内容。我认为这是在我尝试修复另一个问题时由插件工具添加的,删除它摆脱了“转换为 Dalvik 格式失败并出现错误 1”构建错误:

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>

于 2011-01-11T07:34:07.107 回答
9

对我来说,我的构建路径中出现了一个额外的 JAR 引用。我删除了这个,它现在可以工作了。

于 2011-05-25T21:46:24.893 回答
8

我的问题是由 ADT 12.0 版和 ProGuard 集成引起的。这个错误有据可查,解决方案在文档中

解决方案在这里

ProGuard 命令行

于 2011-08-09T18:01:03.507 回答
8

在我的项目中使用 Sherlock ActionBar 库时,我已经处理了这个问题。您可以执行以下步骤,这对我有用。

  1. 右键单击您的项目,选择属性。
  2. 将显示一个对话框,在左侧菜单中选择“Java 构建路径”。
  3. 删除右侧面板上的“Android 依赖项”和“Android 私有库”,然后单击“确定”
  4. 清理你的项目(选择菜单项目 --> 清理)
  5. 右键单击您的项目,选择 Android 工具 -> 修复项目属性
  6. 再次清理项目。
  7. 重启你的电脑
  8. 打开eclipse并导出apk

希望对您有所帮助。

于 2014-06-15T15:10:57.833 回答
7

将 Proguard 更新到最新版本为我解决了这个问题。

  • 我的proguard路径是 C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • 我从这里下载了新版本
  • 并替换了 bin 和 lib 文件夹

感谢上帝!

于 2012-01-17T20:16:50.267 回答
7

就我而言,问题实际上出在 OpenFeint API 项目上。我已将 OpenFeint 添加为库项目:

图书馆项目]![1]![在此处输入图像描述.

它也被添加到构建路径中,ADT 工具 16 给出了这个场景的错误。

右键单击您的项目并单击构建路径,配置构建路径,然后查看图像并从此处删除您的项目 OpenFeint,一切都完成了:)

在此处输入图像描述

于 2012-02-20T07:05:59.600 回答
7

我发现了别的东西。Android 使用/libsJAR 文件的目录。我多次看到“Conversion to Dalvik format failed with error 1”错误,总是当我在 JAR 文件中出错时。

现在我将 Roboguice 升级到更新版本,将新的 JAR 文件放在/libs目录中并将类路径切换到新版本。这导致了 Dalvik 错误。

当我从/libs文件夹中删除其中一个 Roboguice JAR 文件时,错误消失了。显然,/libs无论您在 Java 构建路径中指定了哪些 JAR 文件,Android 都会从中获取所有 JAR 文件。我不记得了,但我认为 Android/libs默认从Android 4.0(Ice Cream Sandwich,ICS)开始使用。

于 2012-04-23T13:32:00.873 回答
7

通常,当构建路径中有不必要的 JAR 文件时,似乎会出现此问题。

我在处理IntelliJ IDEA时遇到了这个问题。对我来说,这是因为我添加了在运行时编译的JUnitMockito库。这需要在模块属性中设置为“测试”。

于 2012-06-10T15:04:50.087 回答
6

以前提出的解决方案都不适合我。就我而言,问题发生在我从引用库源代码文件夹切换到使用库 JAR 文件时。最初在 Android 应用程序项目 Properties\Android page\Library 部分下列出了一个 Android 库项目,并且该库还在项目资源管理器树中作为库源目录的链接进行了比较。

首先,我只是从项目树中删除了目录链接,并将 JAR 库添加到构建路径中,但这导致了异常。

正确的程序是(在改回构建路径并放回对库源的引用之后):

  • 通过实际从应用程序项目 Properties\ Android 页面中删除引用来正确删除库源目录链接

  • 像往常一样将库 JAR 添加到应用程序项目构建路径。

于 2011-02-28T18:49:57.733 回答
6

列出的解决方案都不适合我。

这是我遇到问题的地方:

我将 jSoup 外部 JAR 文件添加到我的项目路径中,首先将其放在名为“libs”的源文件夹中,然后右键单击它,构建路径- > 添加到构建路径。这引发了 Dalvik 转换错误。它说我已经从那个 JAR 文件中“包含”了一个类。我查看了项目的目录,发现它“已经包含”的地方实际上就是bin目录。我从目录中删除了 JAR 文件bin并在 Eclipse 中刷新了项目,错误就消失了!

于 2011-10-11T19:21:01.433 回答
5

上面的所有解决方案都对我不起作用。我没有使用任何预编译的 .jar。我正在使用与市场许可库相关的 LVL 和 Dalvik 错误。

通过删除主项目并重新导入(从现有源创建一个新项目),问题得到了解决。

于 2011-01-05T14:25:48.813 回答
5

我有同样的问题,这些解决方案都没有奏效。最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的 jar 文件中):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

因此,请检查您是否在项目中添加了带有重复类的 jar。如果是,请尝试删除其中之一。

它对我有用。

于 2011-01-19T13:56:08.497 回答
5

通常对我来说,清理项目并不能解决这个问题。

但是在 Eclipse 中关闭项目然后重新打开它似乎在这些情况下可以修复它......

于 2011-06-22T21:16:14.920 回答
5

我遇到了这个问题,但我的解决方案是双重的。1.) 我必须在project -> properties -> Android下添加一个 Android 目标版本。2.) 我没有所有的谷歌“第三方插件”。单击可用软件包下的 AVD SDK 管理器->第三方附加组件-> Google Inc。我下载了所有的 SDK,这解决了我的问题。

于 2011-07-15T03:49:02.110 回答
5

我使用的是 Android 1.6 并且有一个外部 JAR 文件。对我有用的是删除所有库,右键单击项目并选择Android Tools -> *Fix Project Properties(添加回 Android 1.6),然后添加回外部 JAR 文件。

于 2011-08-26T13:29:24.523 回答
5

我遇到了这个问题,因为 Eclipse 中的 Android-Maven-plugin 显然无法识别传递引用和从几个项目(包括一个 Android 库项目)中引用两次的引用,并且不止一次地包括它们。我不得不使用 hocus-pocus 只包含一次所有内容,即使 Maven 应该负责所有这些。

例如,我有一个核心库 globalmentor-core,它也被 globalmentor-google 和 globalmentor-android(后者是一个 Android 库)使用。在 globalmentor-androidpom.xml中,我必须将依赖项标记为“已提供”,并从包含它的其他库中排除:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

然后在最终的应用程序中,pom.xml我必须使用正确的技巧来只允许一个包含路径——以及明确包含核心库:

    <!-- android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
于 2011-11-29T18:14:32.593 回答
5

就我而言

项目->属性->java构建路径->按顺序导出选项卡->取消选中android-support-v4.jar

于 2012-10-19T05:55:52.480 回答
5

只需清理项目

如果这不起作用,请尝试其他解决方案

于 2015-01-11T14:49:16.547 回答
5

这个答案基本上是很多人想说的,但可能很多人不明白。所以...

“另一个原因可能是,如果您在项目文件夹中的某个位置有一个 JAR 文件,然后将其添加为 Java 路径库。它不会显示在 Package Explorer 下,因此您不会注意到它,但它确实被计算在内两次,导致可怕的 Dalvik 错误。” 2012 年 1 月 2 日 6:23 Rashmi.B 回答

意义:

例如,如果您的lib文件夹中有这两个库 (.jar): *lib* 文件夹中的库 (.jar)

然后这两个文件夹也被添加到您的构建路径中: 构建路径中的库

意味着它们被计算两次,从而给你错误!

解决方案:

  1. 从您的构建路径中删除这些库并删除“Android Dependencies”: 从构建路径中删除 *lib* 文件夹中的库!
  2. 清理所有项目
  3. 导出您的项目
  4. 享受!:)
于 2015-05-13T23:48:32.277 回答
4

在我的情况下,我添加了一个外部 jar。所以我将外部 jar 位置移动到项目 Prop 中的 android 引用的顶部--->Java buildPath--->项目引用

于 2011-03-17T10:48:19.313 回答
4

我知道它已经回答了,但这是我的解决方案:

我的 Android 项目来自一个Subversion存储库,我刚刚将 Checkout 作为一个新项目。我必须手动将我的库(Android 和 Java)添加到构建路径,否则它不会让我编译。然后我会得到上述错误。

我必须创建一个新的 Android 项目,然后手动复制更改。

于 2011-07-18T17:58:10.973 回答
4

我的问题在于Ant + ProGuard + AdMob SDK 库 + 调试模式的集成。我正在使用 Ant 构建调试 APK 并将 AdMob SDK JAR 添加到libs/目录。Eclipse 可以正常生成调试 APK,但 Ant 不能。我收到以下错误。

[应用] 意外的顶级异常:[应用] java.lang.IllegalArgumentException:已添加:Lcom/google/ads/AdActivity;[应用] 在 com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)

我还在我的调试版本中打开了 ProGuard build.xml(默认为关闭):

<target name="-debug-obfuscation-check">
    <property name="proguard.enabled" value="true"/>
</target>

这就是问题所在。不知何故,ProGuard 和 AdMob SDK 在调试模式下并不同时存在。ProGuard 没有混淆AdActivity类,因此它以未混淆的形式出现bin/proguard/obfuscated.jar,但同一类存在于 AdMob SDK JAR 文件中。Eclipse 在没有 ProGuard 的情况下构建调试 APK,因此运行良好。

所以我的解决方案只是关闭 ProGuard 以在build.xml. 我希望它可以帮助某人。

于 2011-08-08T20:22:02.367 回答
4

在我的情况下,这里的答案都没有帮助。

对我来说,问题是mvn eclipse:eclipse生成了一个类路径条目,该条目是对 Android 库项目的项目引用,但是,它没有显示在 Eclipse 构建路径设置中!这意味着库类在 dexer 中结束了两次,一次来自隐藏的项目引用,一次来自链接库 JAR。

我必须使用文本编辑器打开 .classpath 并手动删除项目元素。这解决了这个问题。

于 2012-01-14T11:37:16.900 回答
3

在其类路径中包含 protobuf lite(Google 的Protocol Buffers )的项目中,我遇到了完全相同的错误。我猜原因是protobuf-lite.jar在我的类路径中,而项目文件夹是在我以前的机器中构建的。当我下载Maven并重新构建protobuf-lite.jar文件然后将其作为用户库重新添加到我的项目中时,一切正常。

于 2011-12-04T03:18:32.203 回答
3

对我有用的是:

  • 彻底清理构建
  • 删除了android.jar我在Project/Properties/Libraries.
于 2011-12-25T01:30:43.527 回答
3

我使用的是 ADT r14,当我尝试添加任何库项目时,我得到了这个错误。对我来说,有效的只是将 ADT 更新到最新版本。它立即解决了问题。我尝试了几乎所有在 stackoverflow 上给出的解决方法,但没有其他方法对我真正有用。

于 2012-08-27T06:55:21.053 回答
3

我个人设法通过project.properties在 Eclipse 项目中手动编辑文件来解决这个问题。

这是啥:

target=android-16
android.library.reference.1=..\\..\\github\\ActionBarSherlock\\library
android.library.reference.2=../../github/android-numberpicker/library

我把它改成这样问题就消失了:

target=android-16
android.library.reference.1=../../github/ActionBarSherlock/library
android.library.reference.2=../../github/android-numberpicker/library

使用“修复项目属性”工具自动修复此文件。

于 2013-04-04T07:25:07.547 回答
3

对我来说,问题是我设置了错误的编译器合规级别(1.8 而不是 1.7)

这个答案解决了它:

在 Project SDK 部分中,当您添加 Android SDK 时,您应该提供 Java SDK,并且我所有的 Android SDK 都使用 Java 8 作为 SDK,因此即使项目级别为 1.7(我没有知道为什么,我认为一切都是由项目级别选择的)。现在我更改了 SDK(Java 版本“1.x.0”部分。)

于 2014-12-25T19:21:59.283 回答
2

在我的情况下,问题是在 2011 年 3 月更新 Eclipse 和 ADT 之后产生的。在我的项目中,我使用的是一个 JAR,它产生了要重建的问题,而以前的解决方案都没有工作。我花了几天时间尝试所有,上下搜索没有令人满意的解决方案。显然对 .jar 文件有双重引用。

最后我 :

  1. 从库中删除任何引用,
  2. 删除了应用程序中的物理文件形式。
  3. 使用“添加外部罐子”获得 .jar(位于项目外部的不同目录中)
  4. 执行了一个“干净”的项目,
  5. 使用 (ctrl)+(shift)+O 将引用更新到调用 jar 的模块中

它终于编译了。

于 2011-03-11T10:34:59.320 回答
2

这个错误是由于

  1. 拥有多个 JAR 文件。
  2. 如果 JAR 文件有类似的类文件,则.dx无法解析格式。

解决方案:

  1. 制作并选择适当的 JAR 文件。
  2. 获取最新的。
于 2012-01-19T18:54:51.730 回答
2

我正在使用 ADT 7 并且其他修复程序不起作用(但我仍然做了)。

然后我proguard.cfg从另一个项目中复制并简单地将其粘贴到旧的 ADT 项目文件夹中。沃拉,它奏效了

于 2012-02-01T06:41:35.977 回答
2

当我添加具有不同版本的相同 jar 文件时,我也遇到了这个问题,我只需删除旧版本的 jar 并清理它对我来说工作正常的项目。

于 2013-02-15T11:07:20.753 回答
1

当我尝试导出我的项目时,我遇到了同样的问题。在控制台中什么都看不到。

对我来说,解决方案是将 proguard 升级到最新版本,希望这对某人有所帮助。

于 2011-10-09T15:17:50.580 回答
1

我完成了这个答案中的步骤,但仍然没有得到解决方案。我一直在网上搜索,发现如果您在 Android 设备连接到计算机时尝试导出 APK,则会出现此错误。

断开我的设备,然后关闭项目,重新启动计算机,打开项目并清理它,这对我来说已经发生了 3 次。

于 2012-02-03T16:34:15.250 回答
1

该错误应该最终在 ADT 17/Tools r17 预览版中得到修复!至少有一些实例,如果不是全部的话。

于 2012-02-24T02:29:10.193 回答
1

就我而言,只需将手机从 USB 中拔出即可修复此错误。

于 2013-10-06T19:18:25.890 回答
1

这通常发生在我运行了很长时间之后,或者在我成功构建了一个签名的 apk 之后。

就我的经验而言,修复它我只是重新启动 eclipse

于 2013-10-25T08:41:06.500 回答
1

我有同样的错误,并尝试了上面的一切,但没有任何帮助。

我的项目附加到 GIT 源代码控制系统,我意识到在导出到 Andorid 应用程序时有一些与 GIT 相关的任务。然后我将所有更改提交到 GIT 存储库并且错误消失。

因此,如果您使用 GIT 进行源代码控制,但以上没有任何帮助,请尝试将所有更改提交到 GIT 存储库(并最终推送到上游)并再次尝试导出。

于 2014-04-01T11:31:26.797 回答
1

对于NewRelic用户:

如果您在应用程序中集成了 newrelic jar,则当 newrelic 版本过期时会发生这种情况。

解决方案

  • 将 newrelic jar 更新到最新版本。在eclipse上,只需右键单击项目并更新newrelic。或者您可以直接下载新版本。
于 2015-02-04T10:35:28.780 回答
1

Project > Clean为我工作。

于 2015-08-13T12:55:51.733 回答
0

这些答案都不适合我。我的问题是由 JUnit 和 hamcrest 引起的。另请参阅java.lang.IllegalArgumentException:已添加:Lorg/hamcrest/BaseDescription;转换为 Dalvik 格式失败,错误 1

于 2012-09-09T08:22:28.967 回答
0

最好将所有 *.jar 文件包含在项目文件夹树的“lib”目录中。这样,您就不需要通过转到项目的属性来定义构建路径。“lib”已经是一个构建路径

于 2012-10-18T08:24:13.520 回答
0

我有同样的问题。当我检查时,我看到有 2 个具有相同名称的类,在我添加的每个外部 jar 文件中都有 1 个。然后我必须删除 1 个 jar 文件。幸运的是,我为我删除的 1 获得了另一个 jar 文件。

于 2012-11-28T09:45:44.700 回答
0

如果您在应用程序中使用 Leadbolt 广告 SDK 并且同时结合了“通知广告”和“展示广告”,则需要使用 pubxappCom.jar 而不是 pubxapp.jar 来进行通知广告,否则会出现此错误!

快乐编码!

于 2012-12-11T17:49:31.707 回答
0

依赖项上的 Google API 会导致此问题。删除后效果很好。

于 2013-01-23T07:48:53.177 回答
0

我清理了我的主应用程序项目和它使用的 Android 库项目。解决了问题

于 2013-06-03T11:04:55.733 回答
0

- 从您的 java 构建路径中删除所有库。并再次添加。- 清理你的项目。

运行。

于 2013-07-29T07:23:09.133 回答
0

由于我已从构建路径中排除的几个文件被删除,但未从排除列表中删除,因此对我造成了此错误。

项目 -> 属性 -> Java 构建路径 -> 源选项卡 -> 项目/src 文件夹 -> 双击排除 -> 删除项目中不再存在的所有文件。

于 2013-09-23T13:34:48.623 回答
0

我以不同的方式找到了解决方案...... https://stackoverflow.com/a/14948244/1014288

多亏了这个,你可以修复没有删除和东西

于 2013-09-26T05:38:03.127 回答
0

在大多数情况下,此问题是由 Proguard 的错误或损坏版本引起的,由于某些奇怪的原因,通常会从官方 Android SDK 管理器安装

请勿编辑 Proguard bat 文件以避免进一步的问题,如果遇到此问题,请从官方网站下载最新的 Proguard 稳定版本并替换所有 proguard 文件

android-sdk\tools\proguard

从下载的档案中提取最新的 proguard 文件。

如果开发人员将库添加到他的项目中很可能需要该库,则删除所有外部库依赖项是没有意义的。

于 2013-09-30T13:17:48.907 回答
0

没有什么帮助我,但这里建议的解决方案就像一个魅力:

即添加行-optimizations !code/allocation/variableproguard-project.txt

于 2014-03-13T09:38:59.067 回答
0

另一个 android 巫术案例,如果没有其他方法,请尝试在清单中将您的 versionCode 和 versionName 增加 1。

它对我有用。

于 2014-04-30T12:14:27.117 回答
0

嗨以前我有Android SDK Build tools 18.1.1Windows XP。然后我的应用程序运行正常。

但是我将我的系统更新为Windows 7并更新Android SDK Build tools to 19为具有最新配置。

但是我的项目有xercesImpl-2.9.1.jar文件,所以当我开始使用新的/更新的配置运行我的应用程序时,我得到了

Conversion to Dalvik format failed with error 1 while parsing org/apache/xerces/impl/xpath/regex/ParserForXMLSchema.class

所以我浏览了所有提到这个问题但无法解决的答案。我想了 4 天,然后我找到了这个链接,它救了我的命,读完后我才知道问题是由于xercesImpl-2.9.1.jarAndroid SDK Build 工具到 19 造成的。

所以我将它降级为 Android SDK Build tools 到 18.1.1。我摆脱了这个问题。

我在这里发布我的答案,以便如果有人遇到这个问题,他们可以得到解决。

这让我很沮丧。希望能帮助别人。

于 2014-06-10T12:16:36.263 回答
0

我尝试了所有方法,但没有任何效果。

有趣的是,如果我们使用 proguard 导出 android 应用程序,我们会收到“转换为 dalvik 格式失败并出现错误 1”的错误,但如果我们在导出时不使用 proguard,则成功创建了 APK。

最后,我们的 android 项目中的一个 jar.class文件大小超过 1.5 MB。它的大小导致了这个问题。我们将该类拆分为许多较小的类,问题就消失了。

于 2015-12-30T10:38:05.473 回答
0

这里没有什么对我有用,我不得不更改我的 proguard 文件来添加这一行:

-keep class !mycode.** { *; }

它保留了任何不是我的包的代码。

于 2016-03-09T16:55:45.583 回答
0

我刚刚使用最新的 API 和最新的 SDK 和工具安装了最新的 eclipse,但是,多年后,这个错误并没有变老。我浪费了一天的时间来弄清楚。什么都试过了。徒然。因为这条信息非常笼统,很多不同的问题都会引发它。因此,某些人指出的解决方案对其他人不起作用

一个好的第一种方法是转到 Window > Preferences > Android > Build 并取消选中“Skip Packaging and dexing...”。这样,您将在构建时获得更多关于特定错误的线索,而不仅仅是导出。

就我而言,我得到了一个"Dx unsupported class file version..."。我没有看到这里报告的这个错误。好吧,基于此,我发现我使用的一些旧 jar 是用 1.6 编译的,而另一些是用 1.7 编译的。因此,我将默认的 IDE 编译器合规级别更改为 1.6(Window > Preferences > Java > Compiler),在完全清理和重建我拥有的每个依赖项之后,我终于可以生成我的 APK。

于 2017-04-20T05:21:28.380 回答
0

我在使用 Eclipse neon 和 JDK 1.8 时遇到了这个问题。换成JDK 1.7后问题就解决了。

在此处输入图像描述

于 2017-06-04T22:33:20.220 回答
-1

这里的答案也没有对我有用。

但是,我可以通过从除主应用程序之外的所有附加库中删除 Android 类路径容器(在我的情况下为 Android 4.4)然后导出 APK 来修复错误。库项目将不再编译,但 jar 文件仍然存在并且 APK 正在部署。我不确定这种行为的原因是什么。

于 2013-12-20T20:58:56.637 回答
-14

如果要解决此问题,则必须将 Android SDK1.6 更改为 Android 2.2。之后,清理项目,然后构建并运行。然后你会看到你的应用程序正在运行。

于 2011-02-24T10:50:52.853 回答