E / ddms IllegalArgumentException安装了32位和64位Java JRE的“错误版本”

E / ddms IllegalArgumentException安装了32位和64位Java JRE的“错误版本”

你好。 在安装了64位Java JDK(以及通过JDK JRE)的Windows 7 Pro 64位系统上工作,并使用Eclipse 3.5.2和最新的Android SDK(rev 7)。 一切正常。

如果我然后在同一台机器上安装32位Java JRE(以便我可以在Chrome / Firefox中运行Java applet),并尝试启动模拟器(从命令提示符或从Eclipse中),我得到了以下例外……

E/ddms: shutting down due to uncaught exception E/ddms: java.lang.IllegalArgumentException: Bad version: standalone at com.android.sdkstats.SdkStatsService.normalizeVersion(SdkStatsService.java:467) at com.android.sdkstats.SdkStatsService.doPing(SdkStatsService.java:195) at com.android.sdkstats.SdkStatsService.ping(SdkStatsService.java:130) ... 

具体发生的是,当我尝试启动模拟器时,我得到一个标题为“Java -version”的Windows命令提示符窗口,该窗口很快消失,然后是另一个标题为“C:\ Windows”的Windows命令提示符窗口\ system32 \ cmd.exe“,它也快速消失,最后是第三个Windows命令提示符窗口,其中包含上述exception信息,标题为…

“java -Djava.ext.dirs = lib \ x86; lib \ -Dcom.android.ddms.binddir = -jar lib \ ddms.jar ping emulator standal ……”
(’…’是因为窗口不够宽,无法显示标题的其余部分)

…也很快消失了。 所有三个窗口在1-2秒的时间内显示/消失。

从我的系统中卸载/删除32位Java JRE会使问题消失,重新引入Java 32位JRE会导致它返回。

现在我只是没有安装32位Java JRE,如果我需要访问带有Java applet的网页,我使用64位版本的IE(Java 64位工作),但是我希望能够在我的Android / Eclipse 64位开发环境之间保持和谐,以及我需要运行32位Java JRE,以便我可以在Chrome / Firefox中使用applet。

任何建议/信息将不胜感激。 在此先感谢您的时间和精力。

PS这是我之前描述的三个Windows命令提示符窗口的复合sc​​reenpic: http : //img409.imageshack.us/img409/3182/tempb.png

我有这个问题。 就我而言,我正在运行Windows 7 32位。 我找到了解决方案

修改C:\ android-sdk-windows \ tools文件夹中的ddms.bat。 最后一行来自

调用%java_exe%%java_debug%-Djava.ext.dirs =%javaextdirs%-Dcom.android.ddms.bindir = -jar%jarpath %% *

至:

调用%java_exe%%java_debug%-Djava.ext.dirs =%javaextdirs%-Dcom.android.ddms.bindir = -jar%jarpath%ping emulator 0012

这个对我有用。

参考: http : //ichavo.ru/voprosy/10-11-15/illegalargumentexception-bad-version-standalone

我有同样的问题,我能够解决它。 我的情况是我有两个已安装的JRE和一个JDK。 Android文档说你需要完整的JDK,所以我决定卸载两个JRE。 在我这样做之后,事情仍然不起作用(虽然有不同的错误),然后我发现可能是我的问题的根本原因。

简而言之,当事情不起作用时,我遇到了这种情况。 我的JAVA_HOME系统属性指向JDK,我的PATH系统属性指向其中一个JRE的bin文件夹。

我卸载JRE后得到的错误是Eclipse(3.5.1,32位)根本无法启动,说它无法找到Java可执行文件(或者其他类似的东西)。 所以我修复了PATH以指向JDK的bin文件夹。 进行此更改后,一切正常,我可以测试我的Android程序。

所以我对最终结果感到满意,但这是所有这一切的奇怪部分。 我的系统是64位,并运行Windows Vista。 我无法让Eclipse 3.5.1 64位版本工作 – 我正在运行32位版本。 我不记得我的JDK是32位还是64位,但可能是64位(这看起来就像我当时选择的那样)。

这是我不明白的最后一个谜 – 我在测试我的应用程序时弹出的第三个Windows命令提示符窗口仍然得到相同的exception消息(E / ddms:由于未捕获的exception而关闭…)

我希望这有帮助。

要修复错误我执行了以下任务:

1.运行Android应用程序(右键单击项目>>运行方式>>> Android应用程序)它将启动您的模拟器然后让模拟器运行。

2.然后检查环境变量中的PATH变量是否将其设置为Android SDK Tools目录。

3.然后转到命令提示符命令’ddms’启动Dalvik Debug Monitor。

4.然后再按步骤1中的说明运行应用程序。

然后查看仿真器屏幕以查看所需结果。

我也有同样的问题。 但我无法使用只安装32位jre或64位jre。 我从来没有安装过这两个版本。 幸运的是我发现了这个: http : //www.lightsoft.se/ ?p = 527。

在启动模拟器(并使其保持运行)后,在命令提示符中输入以下命令:

 adb kill-server adb logcat-c 

这是一个非常粗糙的方法来修复它,但对我有用。

我遇到了同样的错误。

从上面的评论中可以看出,这是由于各种版本的JRE之间存在某种冲突而发生的。 我只是在我的整个机器上搜索java.exe并删除了包含Java的所有目录。

我知道这很粗糙但对我有用,因为我没有使用任何这些程序。

我想从PATH变量中删除所有这些目录也可以

AMOL