Question

J'exécute un test JUnit

Je suis l'erreur suivante,

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 )

Peut-corps s'il vous plaît suggérer la solution pour résoudre

Pas de solution correcte

Autres conseils

Je suis le même problème, mais avec beaucoup de googler j'ai trouvé la réponse! Voir cette page

Citation du lien:


# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:2924), pid=5364, tid=6644
#  Error: ShouldNotReachHere
  1. C'est parce que nous utilisons la mise en œuvre du talon JUnit Android. Allez à Exécuter -> Exécuter en tant que -> Exécuter les configurations encore et dans les entrées Bootstrap retirer de la configuration JUnit récemment créé Classpath Library Android
  2. Ensuite Ajouter bibliothèque, en utilisant le bouton Avancé ... et ajouter la bibliothèque système et JUnit JRE 3
  3. Appliquer et Exécuter

Essayez cela, il a travaillé pour moi.

Vous devez prendre cela avec Sun - ressemble à un bogue JVM pour moi. Si elle est reproductible, vous devriez être en mesure d'exécuter Java de manière à générer plus de détails (par exemple verbose, etc.). Si vous pouvez le réduire à un cas minimal qui déclenche le bogue (code source aide toujours!), Qui va aussi un très long chemin.

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

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

En attendant, vous pouvez essayer avec une implémentation JVM différente (peut-être même un niveau de correctif le plus ancien de Sun JRE).

Aller à Exécuter en tant que -.> Exécuter les configurations ... et sélectionnez la configuration que vous utilisez
Sélectionnez l'onglet Chemin de classe et sélectionnez BootStrap entrées .
Cliquez sur Advance , puis Ajouter une bibliothèque et sélectionnez Bibliothèque système JRE .
Bring it et en faire la première entrée dans la liste des BootstrapEntries.

Appliquer et Exécuter ...

Une autre explication possible: défaillance matérielle. Exclue si vous pouvez reproduire l'erreur sur des machines différentes.

Je résolus par cette

  • quit éclipse
  • Supprimer bin et gen répertoires dans votre projet
  • éclipse Debut
  • Reconstruire votre projet

Je viens de solution récemment pour cette question qui a été publié par devdanke :

"En date du 11-Juillet-2010 et Android 2.1, le travail autour que j'utilise est de séparer les tests dans différentes classes. Tout test (s) qui ne nécessitent pas d'API Android vont dans leurs propres classes. Pour chacun des ces classes, je supprimer la référence à Android dans leur Run Configurations, onglet Classpath « .

Le problème avec l'avoir configuré la classe par classe est alors il est impossible d'exécuter tous les tests dans le projet. Une meilleure approche est de créer 2 projets de test avec différents ensembles de bibliothèques.

projet de test standard Android JUnit peut être créé le lien suivant , et la classe de test d'échantillon ressemble à:

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

Ensuite, projet de test JUnit peut être converti à partir d'Android JUnit projet de test en supprimant Library Android du chemin de génération de projet, et l'ajout de la bibliothèque système JRE et JUnit 3 bibliothèque, et la classe de test d'échantillon ressemble à:

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

J'ai eu un problème similaire, je l'ai trouvé parce que j'avais généré une nouvelle activité avec une entrée de talon principal []. Une fois que je supprimé le code principal [] de la nouvelle activité templatye l'erreur a disparu.

YMMV

Cela pourrait être un bogue JVM; voir @ réponse de Zac. Mais il se pourrait aussi que votre cas de test JUnit est à l'origine d'un fichier bytecode corrompu à charger. Essayez de reconstruire tous vos fichiers .class, et si cela ne résout pas le problème, essayez refetching des bibliothèques externes que votre code dépend.

Avez-vous exécutez sur une plate-forme supportée (Windows, l'une des quelques versions Linux?) Sinon, c'est le premier à essayer.

Si vous êtes sur une plate-forme supportée, puis revenir à _17 et voir si cela aide.

Ensuite, faire un rapport de bug à Sun et nous espérons qu'ils vont fixer un jour (sauf si vous voulez leur donner de l'argent pour le fixer plus rapidement).

Allez à Exécuter en tant -> Exécuter> Configurations- classpath-> Bootstrap entrées Cliquez sur Advance, puis Ajouter Bibliothèque et sélectionnez Bibliothèque système JRE comme première entrée. Appliquer et Exécuter ...

Je ne sais pas si vous étiez en mesure d'atteindre la solution à votre problème ou pas, mais votre question juste sauté vers le haut alors que je cherchais la solution pour le même problème que je suis confronté. Et je suis une solution de la pile elle-même, donc juste pensé partager un lien avec vous si cela vous aide par tous les moyens. Le lien est comme ci-dessous:

Impossible d'exécuter JUnit 4 cas de test dans le projet Eclipse Android

Une autre raison possible (pour de futures références): J'avais accidentellement copié dans une méthode principale dans mon code, ce qui Eclipse de reconnaître le projet comme une application java, lançant ainsi avec cette configuration.

Pour le résoudre, je suis entré dans Exécuter> Exécuter les configurations ... puis changé de mon présumé principal application Java à l'activité principale de mon application android simplement en choisissant dans la colonne de gauche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top