Подтвердить что ты не робот

Неустранимая ошибка среды выполнения Java

Я выполняю тестовый пример junit

Я получил следующую ошибку:

A fatal error has been detected by the Java Runtime Environment:

Internal Error (classFileParser.cpp:3174), pid=2680, tid=2688

  Error: ShouldNotReachHere()

  JRE version: 6.0_18-b07

  Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode windows-x86 )

Может ли любой орган предложить решение для решения

4b9b3361

Ответ 1

У меня такая же проблема, но с большим количеством поисковых запросов я нашел ответ! См. эту страницу

Цитата из ссылки:


# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:2924), pid=5364, tid=6644
#  Error: ShouldNotReachHere
  • Это потому, что мы используем реализацию JUnit для Android. Перейдите в раздел "Выполнить" → "Запустить как" → "Запустить конфигурации снова" и в недавно созданной конфигурации JUnit. "Путь к каталогу Boottrap" удаляет библиотеку Android.
  • Затем добавьте библиотеку, используя кнопку "Дополнительно", и добавьте Системную библиотеку JRE и JUnit 3
  • Применить и запустить

Попробуй, это сработало для меня.

Ответ 2

Вам нужно взять это с Sun - похоже на ошибку JVM для меня. Если он воспроизводимый, вы должны иметь возможность запускать java таким образом, чтобы генерировать более подробную информацию (например, -verbose и т.д.). Если вы можете уменьшить его до минимального случая, который запускает ошибку (исходный код всегда помогает!), Это также идет очень долго.

http://java.sun.com/developer/technicalArticles/bugreport_howto/index.html

http://bugreport.sun.com/bugreport/crash.jsp

Тем временем вы можете попробовать его с другой реализацией JVM (возможно, даже с более старым уровнем патча Sun JRE).

Ответ 3

Перейдите в Запустить как Запустить конфигурации... и выберите конфигурацию, которую вы используете.
Перейдите на вкладку Классовый путь и выберите Записи BootStrap.
Нажмите Advance, затем Добавить библиотеку и выберите JRE System Library.
Поднимите его и сделайте его первой записью в списке BootstrapEntries.

Применить и запустить...

Ответ 4

Еще одно возможное объяснение: аппаратный сбой. Исключено, если вы можете воспроизвести ошибку на разных машинах.

Ответ 5

Я решил это

  • Закройте eclipse
  • Удалите каталоги bin и gen в своем проекте
  • Запустить eclipse
  • Перестройте свой проект

Ответ 6

Недавно я нашел решение для этой проблемы, которое было опубликовано devdanke:

"По состоянию на 11 июля 2010 года и Android 2.1 работа, которую я использую, заключается в разделении тестов на разные классы. Любой тест (ы), который не вызывает каких-либо API Android, входит в их собственные классы. эти классы, я удаляю ссылку на Android в их Run Configurations, вкладке Classpath."

Проблема с тем, что он настроил класс по классу, тогда невозможно запустить все тесты в проекте. Лучший подход - создание 2 тестовых проектов с различными наборами библиотек.

Стандартный проект Android JUnit Test может быть создан после ссылка, а образец тестового класса выглядит следующим образом:

import android.test.AndroidTestCase;
public class ConverterTest extends AndroidTestCase {
    public void testConvert() {
        assertEquals("one", "one");
    }   
}

Затем проект JUnit Test можно преобразовать из проекта Android JUnit Test, удалив библиотеку Android из пути создания проекта и добавив библиотеку JRE System Library, а также библиотеку JUnit 3 и образец тестового класса:

import junit.framework.TestCase;
public class ConverterTest extends TestCase{
    public void testConvert() {
        assertEquals("one", "one");
    }   
}

Ответ 7

У меня была аналогичная проблема, я обнаружил, что это связано с тем, что я создал новую активность с основной записью []. Как только я удалил основной [] код из новой активности templatye, ошибка исчезла.

YMMV

Ответ 8

Это может быть ошибка JVM; см. @Zac ответ. Но также может быть, что ваш тестовый пример junit вызывает загрузку поврежденного файла байт-кода. Попробуйте восстановить все ваши файлы .class, и если это не поможет устранить проблему, попробуйте перепрограммировать любые внешние библиотеки, от которых зависит ваш код.

Ответ 9

Вы запускаете на поддерживаемой платформе (Windows, одна из нескольких версий Linux?) Если нет, это первая попытка.

Если вы находитесь на поддерживаемой платформе, перейдите на _17 и посмотрите, поможет ли THAT.

Затем сделайте отчет об ошибке для Sun и надейтесь, что они когда-нибудь исправит его (если вы не захотите дать им деньги для исправления его быстрее).

Ответ 10

Перейдите в Run As → Run Configurations- > classpath- > Записи BootStrap Нажмите "Advance", затем "Добавить библиотеку" и выберите JRE System Library в качестве первой записи. Применить и запустить...

Ответ 11

Я не уверен, удалось ли вам решить проблему или нет, но ваш вопрос просто появился, когда я искал решение той же проблемы, с которой я столкнулся. И у меня есть одно решение из самого стека, поэтому просто подумайте о том, чтобы поделиться с вами ссылкой, если это поможет вам любыми способами. Ссылка выглядит следующим образом:

Не удается запустить тестовый пример JUnit 4 в проекте Android Eclipse

Ответ 12

Другая возможная причина (для будущих ссылок): Я случайно скопировал основной метод в своем коде, заставив Eclipse распознать проект как приложение Java, тем самым запустив его с этой конфигурацией.

Чтобы решить эту проблему, я вошел в Run > Run Configurations... и затем изменил с моей предполагаемой основной в java-приложении на основную активность моего приложения для Android, просто выбрав его в левом столбце.