外部JAR上的“转换为Dalvik格式失败,错误1”

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

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

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

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

489262 次浏览

我解决了这个问题。

这是一个JAR文件冲突。

似乎我的Buildpath上有两个包含相同包和类的JAR文件。

smack.jarandroid_maps_lib-1.0.2

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

转到项目“属性”Java构建路径”库并删除除“Android X. Y”(在我的情况下为Android 1.5)之外的所有内容。单击确定。转到项目“清洁”清洁下面选择的项目“选择您的项目并单击确定。应该可以。

也有可能您的项目文件夹中有一个JAR文件(我已将Admob JAR文件复制到我的src文件夹中),然后将其添加为Java路径库。它不会显示在包资源管理器下,因此您不会注意到它,但它确实会被计数两次,导致可怕的Dalvik错误1。

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

如果你意外地或有意地手动编辑/添加类路径文件中的任何内容,则可能会发生这种情况。在某些情况下,我们可能会手动将android.jar路径添加到类路径文件以生成java doc。

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

上面的所有解决方案都不适合我。我没有使用任何预编译的. jar。我使用的是LVL和Dalvik错误,所有这些都与市场许可库有关。

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

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

我终于把它追溯到我的. 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>

我遇到了同样的问题,这些解决方案都不起作用。最后,我在控制台中看到错误是由于重复的类(一个在现有项目中,一个在添加的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。如果是,请尝试删除其中一个。

它为我工作。

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

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

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

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

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

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

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

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

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

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

最后我:

  1. 从图书馆中删除任何参考资料,
  2. 删除应用程序中的物理文件表单。
  3. 使用“添加外部Jars”获取. jar(位于项目外部的不同目录中)
  4. 做了一个“干净”的项目,
  5. 将引用更新到调用jar的模块中,使用(ctrl)+(Shift)+O

它终于编译了。

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

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

如果您将Android.jar文件添加到构建路径中,也可能会导致这一点,可能是由于Eclipse中意外的快速修复。通过右键单击项目->构建路径->配置编译路径->android.jar将其删除,删除。

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

但是在Eclipse中关闭项目然后重新打开它似乎确实在这些情况下修复了它…

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

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

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

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

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

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

我还在我的build.xml中打开了ProGuard以进行调试构建(默认为关闭):

<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,因此它工作正常。

所以我的解决方案只是在build.xml中关闭ProGuard进行调试构建。希望对大家有帮助

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

解决办法在这里

ProGuard命令行

Windows 7解决方案:

确认问题是由文件中的ProGuard命令行引起的
【Android SDK安装目录】\工具\proGuard\bin\proguard.bat

编辑以下行将解决问题:

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

我正在使用Android 1.6并且有一个外部JAR文件。对我有效的是删除所有库,右键单击项目并选择android工具->*修复项目属性(添加回Android 1.6),然后添加回外部JAR文件。

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

只需从Web下载它,并将lib文件夹从下载的包复制到:

【Android SDK安装目录】\工具\prodf\lib

当我试图导出我的项目时,我遇到了同样的问题。在控制台中看不到任何东西。

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

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

这是我遇到问题的地方:

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

这是另一个场景和解决方案:

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

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

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

编辑:这是由Android开发博客条目确认的,特别是这一个-请参阅第8段起。

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

例如,我有一个核心库global alatort-core,它也被global alatort-google和global alatort-android(后者是一个Android库)使用。在global alatort-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 beingincluded twice; it must therefore be included manually (either explicitlyor transitively) in dependent projects --><scope>provided</scope></dependency>

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

    <!-- android-maven-plugin can't seem to automatically keep this from beingincluded 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 frombeing 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>

我有一个项目在其classpath中包含原型lite(谷歌的协议缓冲区)的完全相同的错误。我想原因是我的类路径中的protobuf-lite.jar和项目文件夹是在我以前的机器中构建的。当我下载Maven并重新构建protobuf-lite.jar文件,然后将其作为用户库重新添加到我的项目中时,一切都很好。

对我有用的是以下内容:

  • 彻底清理构建
  • 删除了我在Project/Properties/Libraries中找到的无关的android.jar文件。

这里的答案对我的情况没有帮助。

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

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

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

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

感谢上帝!

此错误是由于

  1. 有一个以上的JAR文件。
  2. 如果JAR文件具有类似的类文件,则无法解析.dx格式。

解决方案:

  1. 创建并选择适当的JAR文件。
  2. 得到最新的一个。

我使用的是ADT 7,其他修复不起作用(但我还是做了)。

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

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

断开我的设备,然后关闭项目,重新启动计算机,打开项目和清理它对我都有效,这已经发生了三次。

在我的情况下,问题实际上是OpenFeint API项目。我已将OpenFeint添加为库项目:

库项目]![1]![在此处输入图像描述

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

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

在此处输入图像描述

ADT 17/Tools r17预览版发布时错误应该最终修复!至少有一些实例,如果不是全部。

经过四个小时的测试,我今天找到的唯一解决方案是这里提供的许多解决方案的组合:

  • Delete来自Eclipse的项目
  • 从项目文件夹中删除\bin\gen中的文件
  • 将对库的引用删除到根项目文件夹中的.classpath文件中
  • 使用命令行重新启动Eclipse:eclipse -clean
  • Import项目
  • 右键单击项目-选择Properties>Java Build Path>Libraries并删除Android XX.Y以外的所有内容
  • 最后clean项目,等待自动构建或Build
  • 发射,现在它起作用了!至少对我来说…

我一次尝试了每一步和许多组合,但只有所有步骤的连续一次成功了!我希望我不会再面对这个…

我发现了别的东西。Android使用/libs目录作为JAR文件。我见过无数次“转换为Dalvik格式失败并出现错误1”错误,总是在我的JAR文件中出错时。

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

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

一般来说,当构建路径中存在不必要的JAR文件时,这个问题就会出现。

我在处理IntelliJ IDEA时遇到了这个问题。对我来说,它发生是因为我添加了JUnit莫基托库,它们正在运行时编译。这需要在模块属性中设置为“测试”。

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

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

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

在我的情况下

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

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

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

编码愉快!

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

当我用不同的版本添加相同的jar文件时,我也面临这个问题,我只是删除旧版本jar一个干净的项目,它对我来说很好。

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

它是什么:

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

我改变了它,所以问题消失了:

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

此文件是使用“修复项目属性”工具自动修复的没有

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

编辑(新解决方案):

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

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

我以前的解决方案:

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

终于找到了答案:https://groups.google.com/forum/#!

简单步骤:

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

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

在自动构建仍然存在时将您的应用导出为签名的APK禁用

-从java Build路径中删除所有库。然后再次添加它。-清理你的项目。

运行它。

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

这个错误是由于我从构建路径中排除的几个文件被删除,但没有从排除列表中删除。

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

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

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

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

不要编辑ProGuard蝙蝠文件以避免进一步的问题,如果你得到这个问题,下载最新的ProGuard稳定版官方网站并替换所有proGuard文件

android-sdk\tools\proguard

从下载的存档中提取的最新proGuard文件。

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

在我的情况下,从USB中拔出我的手机就是修复此错误所需要的一切。

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

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

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

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

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

-optimizations !code/allocation/variable添加到proguard-project.txt

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

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

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

另一个机器人巫术的案例,如果没有别的办法,试试看在清单中将versionCode和versionName增加1。

它为我工作。

嗨,以前我有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.jar与Android SDK构建工具到19。

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

我在这里发布我的答案,以便如果有人会面对这个问题,他们可以解决它。

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

在我的项目中使用Sherlock ActionBar库时,我已经处理了这个问题。你可以做以下步骤,这对我来说是工作。

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

希望这对你有帮助。

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

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

这个解决了这个问题:

在项目SDK部分,当您添加Android SDK时,您应该提供JavaSDK,我所有的Android SDK都使用Java8作为SDK使用错误的版本创建类文件,即使项目水平是1.7(我不知道为什么,我以为一切都是选择的按项目级别)。现在我更改了SDK(java版本“1. x.0”)部分)

把项目清理干净

如果这不工作尝试其他解决方案

对于NewRelic用户:

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

解决方案

  • 将newrelic jar更新到最新版本。在eclipse上,只需右键单击项目并更新newresic。或者您可以直接下载新版本。

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

"另一个原因可能是如果您有一个JAR文件位于您的项目文件夹,然后将其添加为Java路径库没有显示在包资源管理器下,所以你不会注意到它,但它确实被计算了两次,导致了可怕的Dalvik错误。"Jan 2'12 at 6:23 Rashmi. B

含义:

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

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

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

解决方案:

  1. 从构建路径中删除这些库也删除“Android依赖项”:从构建路径中删除*lib*文件夹中的库!
  2. 清理所有项目
  3. 导出您的项目
  4. 享受!:)

只有Project > Clean为我工作。

我尝试了一切,但没有任何工作。

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

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

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

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

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

我刚刚使用最新的API和最新的SDK和工具安装了最新的eclipse,但是,多年后,这个错误不会过时。我浪费了一天的时间来弄清楚。尝试了一切。徒劳无功。因为这条消息非常通用,很多不同的问题都会提出它。所以,一些人提出的解决方案对其他人不起作用

一个好的第一种方法是转到Windows>首选项>Android>构建并取消检查“跳过打包和删除…”。这样,在构建时,您将获得有关特定错误的更多线索,而不仅仅是导出。

在我的情况下,我得到了一个"Dx不支持的类文件版本…"。这个错误我没有在这里看到报告。嗯,基于此,我发现我使用的一些旧罐子是用1.6编译的,其他的是用1.7编译的。所以我将默认的IDE编译器合规性级别更改为1.6(窗口>首选项>Java>编译器),在完全清理和重建我所有的依赖关系后,我终于可以生成我的APK了。

我在使用Eclipse neon和JDK 1.8时遇到了这个问题。改用JDK 1.7后,问题得到了解决。

在此处输入图片描述