E / ddms IllegalArgumentException 'Плохая версия' с установленной 32- и 64-битной Java JRE - PullRequest
1 голос
/ 13 октября 2010

E / ddms IllegalArgumentException 'Плохая версия' с установленной 32- и 64-битной Java JRE

Здравствуйте.Работа в 64-разрядной системе Windows 7 Pro, на которой установлен 64-разрядный Java JDK (и через JDK - JRE), а также Eclipse 3.5.2 и последний Android SDK (версия 7).Все работает нормально.

Если я затем установлю 32-битную Java JRE на том же компьютере (чтобы я мог запускать Java-апплеты в Chrome / Firefox), и попытаюсь запустить эмулятор (любой из командыили из 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)
     ...

Что конкретно происходит, когда я пытаюсь запустить эмулятор, я получаю окно командной строки Windows с заголовком «Java»-version ", который быстро исчезает, затем другое окно командной строки Windows с заголовком" C: \ Windows \ system32 \ cmd.exe ", которое также быстро исчезает, и, наконец, третье окно командной строки Windows с приведенным вышев нем указана информация об исключении и с заголовком ...

"java -Djava.ext.dirs = lib \ x86; lib \ -Dcom.android.ddms.binddir = -jar lib \ ddms.jar ping emulator standal ... "
('...' потому что окно было недостаточно широким, чтобы показать остальную часть заголовка)

..., что также быстро исчезает.Все три окна отображаются / исчезают в течение 1-2 секунд.

Удаление / удаление 32-битной Java JRE из моей системы устраняет проблему, повторное введение 32-битной Java JRE вызывает еевернитесь.

Пока у меня просто не установлена ​​32-битная Java JRE, и если мне нужно получить доступ к веб-странице с помощью Java-апплета, я использую 64-битную версию IE (которая64-разрядная версия Java работает в), но я бы хотел, чтобы у меня была гармония между 64-разрядной средой разработки Android / Eclipse и моей потребностью запустить 32-разрядную версию Java JRE, чтобы я мог использовать апплеты в Chrome/Firefox.

Любой совет / информация будут оценены.Заранее благодарим за ваше время и усилия.

PS Вот составной снимок экрана трех окон командной строки Windows, которые я описал ранее: http://img409.imageshack.us/img409/3182/tempb.png

Ответы [ 5 ]

1 голос
/ 27 декабря 2010

Чтобы исправить ошибку, я выполнил следующую задачу:

1. Запустите приложение Android (щелкните правой кнопкой мыши на Project >> Run As >>> Android), и он запустит ваш эмулятор.затем запустите эмулятор.

2. Затем проверьте, не задана ли для переменной PATH в Переменных среды значение каталога Android SDK Tools.

3. Затем перейдите в командную строку и введите команду ddms, чтобы запустить Dalvik Debug Monitor.

4. Затем снова запустите приложение, как описано в шаге 1.

Затем откройте экран эмулятора, чтобы увидеть требуемый результат.

1 голос
/ 22 ноября 2010

У меня была именно эта проблема. В моем случае я использую Windows 7 32bit. Я нашел решение:

Измените ddms.bat в папке C: \ android-sdk-windows \ tools. Последняя строка из

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

до:

call% java_exe%% java_debug% -Djava.ext.dirs =% javaextdirs% -Dcom.android.ddms.bindir = -jar% jarpath% ping эмулятор 0012

Это работает для меня.

Ссылка: http://ichavo.ru/voprosy/10-11-15/illegalargumentexception-bad-version-standalone

1 голос
/ 05 декабря 2010

У меня была такая же проблема, и я смог ее решить.Моя ситуация такова, что у меня было два установленных JRE и один JDK.Документы для Android говорят, что вам нужен полный JDK, поэтому я решил удалить две JRE.После того, как я это сделал, все по-прежнему не работало (хотя и с другой ошибкой), а затем я обнаружил, что могло быть основной причиной моей проблемы.

Короче говоря, когда все не работало, у меня была такая ситуация.Мое системное свойство JAVA_HOME указывало на JDK, а системное свойство PATH указывало на папку bin одной из JRE.

Ошибка, которую я получил после удаления JRE, заключалась в том, что Eclipse (3.5.1, 32-разрядная версия) вообще не запускался, говоря, что не может найти исполняемый файл Java (или что-то в этом роде).).Поэтому я исправил PATH, чтобы он указывал на папку bin JDK.После внесения этого изменения все теперь работает нормально, и я могу протестировать свои программы для Android.

Так что я доволен конечным результатом, но вот странная часть всего этого.Моя система 64-битная и работает под управлением Windows Vista.Я не могу заставить работать 64-битную версию Eclipse 3.5.1 - я использую 32-битную версию.Я не помню, является ли мой JDK 32- или 64-битным, но, вероятно, 64-битным (так как это похоже на то, что я выбрал бы в то время).

И вот последняя загадка, которую я не понимаю - я все еще получаю то же сообщение об исключении в третьем окне командной строки Windows, которое появляется, когда я тестирую свое приложение (E / ddms: закрытие из-заuncaught исключения ...)

Я надеюсь, что это помогает.

0 голосов
/ 27 декабря 2010

Это ОЧЕНЬ грубый метод, чтобы исправить это, но он сработал для меня.

Я столкнулся с той же ошибкой.

Из вышеприведенных комментариев стало ясно, что это происходит из-закакой-то конфликт между различными версиями JRE.Я просто искал java.exe на всей своей машине и удалил все каталоги, которые содержали Java.

Я знаю, что это неочевидно, но работает для меня, поскольку я не использовал ни одну из этих программ.

Полагаю, что удаление всех этих каталогов из переменной PATH могло бы сработать

amol

0 голосов
/ 08 ноября 2010

У меня такая же проблема.Но я не мог заставить его работать ни с установкой только 32-битного jre, ни только с 64-битным jre.Я никогда не устанавливал обе версии одновременно.К счастью, я нашел это: http://www.lightsoft.se/?p=527.

Введите эти команды в командной строке после запуска эмулятора (и оставления его работающим):

adb kill-server
adb logcat-c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...