2015-07-17 10 views
16

Sono in esecuzione test di strumentazione Android per attività di test di unità e, in particolare se il WebView è stato caricato o meno codice è il seguente, ma ogni volta che mi fa eccezioneAndroid TestRunner fallisce a causa di un'eccezione IllegalState

Esecuzione di test di prova in esecuzione avviato il test non è riuscito a correre fino al completamento. Motivo: "Esecuzione strumentazione non riuscita a causa di 'java.lang.IllegalStateException' '. Controllare logcat dispositivo per i dettagli test in esecuzione non è riuscita: run Strumentazione riuscita a causa di 'java.lang.IllegalStateException'

ci sono i registri Logcat, proprio questo messaggio nella console, ha cercato su Genymotion così come dispositivo di entrambi sono su Android 5.0.

codice è il seguente

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> { 

    WebView webView; 
    WebViewActivity testActivity; 

    public WebViewActivityTest() 
    { 
     super(WebViewActivity.class); 
    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     testActivity = getActivity(); 

    } 

    public void testWebView() 
    { 
     webView = (WebView)testActivity.findViewById(R.id.webView); 
     assertNotNull(webView); 
    } 

    public void testPreconditions() { 

     assertNotNull("Webview activity is null",testActivity); 
    } 
} 

Ho provato a cercare ma ha ottenuto alcun indizio perché questa eccezione si sta verificando, si prega di aiuto.

+0

Una stacktrace completo sarebbe molto apprezzato – Johnco

+0

@Johnco im ottenere nulla in logica proprio questa eccezione su console –

+0

's i messaggi dell'eccezione? Cordiali saluti, [http://stackoverflow.com/questions/14839162/instrumentation-run-failed-due-to-java-lang-illegalaccesserror] [1] [1]: http: // stackoverflow.com/questions/14839162/instrumentation-run-failed-due-to-java-lang-illegalaccesserror – suiwenfeng

risposta

1

Aggiungere una dichiarazione di cattura dopo lo stetment di prova e dare all'ezione di prova un'eccezione. lo Syntext potrebbe essere un po 'fuori, ma che dovrebbe risolvere il tuo probleme

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> { 

WebView webView; 
WebViewActivity testActivity; 

public WebViewActivityTest() 
{ 
    super(WebViewActivity.class); 
} 

@Override 
protected void setUp() throws(exeption e) { 
    super.setUp(); 
    testActivity = getActivity(); 
    catch(exeption e) 
    System.out.println("Nope!); 

} 

public void testWebView() 
{ 
    webView = (WebView)testActivity.findViewById(R.id.webView); 
    assertNotNull(webView); 
} 

public void testPreconditions() { 

    assertNotNull("Webview activity is null",testActivity); 
} 

}

+0

Definisci bene l'istruzione try/catch block. – Joseph

+0

Devi decidere su 'getta' o' prova' come controllo dell'eccezione. – eyalp55

+0

Per risolvere il tuo problema hai bisogno di un gestore di eccezioni e di implementarlo nel codice. per ulteriori informazioni sulle eccezioni e sulla loro gestione, raccomando questo https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html – eyalp55

Problemi correlati