Domanda

sto eseguendo un caso di test JUnit

ho ottenuto il seguente errore,

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 )

qualsiasi organismo può per favore suggerire la soluzione per risolvere

Nessuna soluzione corretta

Altri suggerimenti

Ho avuto lo stesso problema, ma con un sacco di googling ho trovato la risposta! Vedere questa pagina

Citazione dal link:


# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:2924), pid=5364, tid=6644
#  Error: ShouldNotReachHere
  1. Questo perché stiamo usando implementazione JUnit stub di Android. Vai a Run -> Run As -> configurazioni di eseguire di nuovo e nelle voci Bootstrap della recentemente creata JUnit configurazione del Percorso di classe rimuovere Biblioteca Android
  2. Aggiungi Poi Biblioteca, utilizzando pulsante Avanzate ..., e aggiungere JRE Sistema Bibliotecario e JUnit 3
  3. Applica e Esegui

Prova questo, ha funzionato per me.

È necessario prendere questo con Sun - si presenta come un bug JVM per me. Se è riproducibile, si dovrebbe essere in grado di eseguire Java in modo tale da generare ulteriori dettagli (ad esempio verbose, ecc). Se si può ridurlo a un caso minima che fa scattare il bug (codice sorgente aiuta sempre!), Che va anche un lungo cammino.

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

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

Nel frattempo, si potrebbe desiderare di provare con un'implementazione JVM diversa (forse anche un livello di patch più vecchio del Sun JRE).

Vai a Esegui come -.> Esegui Configurazioni ... e selezionare la configurazione che si sta utilizzando
Selezionare il Class Path e selezionare BootStrap voci .
Clicca su Avanzate , quindi su Aggiungi biblioteca e seleziona JRE Sistema Bibliotecario .
Bring it up e renderlo la prima voce nella lista BootstrapEntries.

Applicare e Esegui ...

Un'altra possibile spiegazione: guasto hardware. Escluso se è possibile riprodurre l'errore su macchine diverse.

Ho risolto questo da

  • Esci eclipse
  • Elimina bin e gen le directory nel progetto
  • start eclipse
  • Rigenerare il progetto

proprio di recente ho trovato la soluzione per questo problema che è stato pubblicato da devdanke :

"A partire dal 11 luglio 2010 e Android 2.1, il lavoro intorno che uso è quello di separare i test in diverse classi. Qualsiasi prova (s) che non chiamare qualsiasi API Android vanno nelle proprie classi. Per ciascuno di queste classi, ho rimuovere il riferimento ad Android nella loro Run Configurazioni, scheda Classpath."

Il problema di averlo configurato classe per classe è, allora non è possibile eseguire tutti i test in progetto. Meglio approccio è la creazione di 2 progetti di test con diversi set di librerie.

progetto Standard Android JUnit test può essere creato seguendo link , e classe di test del campione appare come:

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

Poi progetto JUnit test può essere convertita da progetto Android JUnit test rimuovendo libreria Android dal progetto di percorso di generazione, e l'aggiunta di JRE Sistema Bibliotecario, e JUnit 3 biblioteca e classe di test del campione appare come:

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

Ho avuto un problema simile, ho scoperto che era perché avevo generato una nuova attività con una principale voce di stub []. Una volta che ho cancellato il codice principale [] dalla nuova attività templatye l'errore è andato via.

YMMV

Questo potrebbe essere un bug JVM; vedere @ risposta di Zac. Ma potrebbe anche essere che il caso di test JUnit sta causando un file bytecode danneggiato da caricare. Prova a ricostruire tutti i file .class, e se questo non risolve il problema provare refetching librerie esterne che il codice dipende.

Non si esegue su una piattaforma supportata (Windows, una delle poche versioni di Linux?) Se non, che è il primo a provare.

Se si è su una piattaforma supportata, quindi il downgrade a _17 e vedere se questo aiuta.

Poi fare un bug report a Sun e sperano di risolvere il problema un giorno (a meno che non si vuole dare loro i soldi per il fissaggio più veloce).

Vai Esegui come -> Esegui> Configurazioni- classpath-> Voci di bootstrap Clicca su Advance, quindi Aggiungi Biblioteca e selezionare JRE Sistema Bibliotecario come prima voce. Applicare e Esegui ...

Non sono sicuro se sono stati in grado di raggiungere la soluzione al vostro problema o no, ma la tua domanda appena spuntato, mentre ero alla ricerca di una soluzione per lo stesso problema che sto affrontando. E ho avuto una soluzione dalla pila stessa, in modo solo pensato di condividere un link con te se questo ti aiuta con qualsiasi mezzo. Il link è il seguente:

Non è possibile eseguire JUnit caso 4 di prova nel progetto Eclipse Android

Un'altra possibile ragione (per i riferimenti futuri): Avevo accidentalmente copiato in un metodo principale nel mio codice, causando Eclipse di riconoscere il progetto come applicazione Java, quindi il lancio con quella configurazione.

Per risolverlo sono andato in Run> Run Configurazioni ... e poi cambiato dalla mia presunta principale di applicazione java per l'attività principale della mia applicazione Android semplicemente scegliendolo nella colonna di sinistra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top