2010-03-30 2 views
25

Я уверен, выполнение тест JUnit случаеФатальная ошибка средой выполнения Java

я получил следующее сообщение об ошибке,

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) 

Может ли тело пожалуйста предложить решение разрешить

+0

Вы можете попробовать JDK 6 обновление 20. –

+0

Аналогично [Не удается запустить JUnit 4 тестового случая в затмении] (http://stackoverflow.com/questions/2172152/ cant-run-junit-4-test-case-in-eclipse) – idbrii

ответ

3

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

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

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

В то же время, вы можете попробовать его с другой реализации виртуальной машины Java (может быть, даже более старый уровень Пластырь Sun JRE).

0

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

+0

Поврежденный байтовый код? Причинение сбоя JVM? Вы действительно видели, что случилось? –

+0

Нет. Но это правдоподобно, и не так сложно проверить ... пока он ждет, пока Солнце ответит. –

0

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

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

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

1

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

1

Я решил это,

  • Quit затмение
  • Удалить бен и поколения каталоги в вашем проекте
  • Начало затмить
  • Rebuild ваш проект
44

I возникла та же проблема, но с много гуглинга, я нашел ответ! See this page

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


# An unexpected error has been detected by Java Runtime Environment: 
# 
# Internal Error (classFileParser.cpp:2924), pid=5364, tid=6644 
# Error: ShouldNotReachHere 
  1. Это потому, что мы используем реализацию JUnit заглушки Android. Перейдите в Run -> Run As -> Запустить конфигурации снова и в недавно созданной конфигурации JUnit. Записи Bootstrap в Classpath удаляют библиотеку Android.
  2. Затем добавьте библиотеку, используя Advanced ...Кнопка, а также добавить JRE System Library и JUnit 3
  3. Применить и запустить

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

+1

Это сработало для меня хотя бы ................ Спасибо ........... +1 к вам – viv

+0

Спасибо за подсказку! Отлично! – guerda

+0

Отлично. Теперь вопрос в том, почему это добавлено в первую очередь. – pitx3

1

Я только недавно нашел решение этой проблемы, которое было размещено на devdanke:.

«По состоянию на 11-июля-2010 и Android 2.1, работа вокруг я использую для разделения тестов на различные классы Любой тест (s), которые не вызывают никаких API-интерфейсов Android, входят в их собственные классы. Для каждого из этих классов я удаляю ссылку на Android на вкладке «Запуск конфигурации» на вкладке «Класс».

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

проект

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

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"); 
    } 
} 
-1

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

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

1

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

YMMV

2

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

Применить и Run ...

0

Перейти к Run As -> Run Configurations-> classpath-> Bootstrap Entries Нажмите на Advance, затем Add Library и выберите JRE System Library в качестве первой записи. Применить и запустить ...

0

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

Can't run JUnit 4 test case in Eclipse Android project

Смежные вопросы