2011-11-26 9 views
17

Qualcuno ha ottenuto HtmlUnit (o HtmlUnitDriver) per lavorare su applicazioni Android?HtmlUnit sull'applicazione Android

Questo è il problema: Sto ottenendo il seguente messaggio di errore:

11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule 

Questo è quello che ho fatto: Ho provato ad aggiungere l'aggiunta di riferimenti ai vasi elencate nel seguente link (sia sotto progetto dipendenze e progetto transitivi dipendenze - compilare, escludendo vasetti di prova):

http://htmlunit.sourceforge.net/dependencies.html

Come mai Eclipse mantenuto schiantarsi, poi ho trovato un paio di domande dicendo alcuni vasi sono già contenuti nel SDK di Android:

xalan, xercesImpl and xml-apis 

HtmlUnit on Android

HttpClient 

Android Programming HtmlUnit

Così ho rimosso i riferimenti a questi vasi mantenendo solo quanto segue:

commons-codec-1.4.jar 
commons-collections-3.2.1.jar 
commons-io-2.0.1.jar 
commons-lang-2.6.jar 
commons-logging-1.1.1.jar 
cssparser-0.9.5.jar 
htmlunit-2.9.jar 
htmlunit-core-js-2.9.jar 
httpmime-4.1.2.jar 
nekohtml-1.9.15.jar 
sac-1.3.jar 
httpcore-4.1.3.jar 

E 'stato a questo punto quando l'applicazione è stato in grado di correre, ma quando è stato eseguito la seguente riga di codice che ho iniziato a ottenere l'errore:

final WebClient webClient = new WebClient(); 

11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule 

Ho fatto una ricerca sul web e ha scoperto che xml-apis-1.3 .04.jar contiene org/W3C/dom/css/CSSRule così ho messo che il riferimento di nuovo al progetto, ma l'applicazione non avrebbero costruito affatto dire lo stesso messaggio di errore descritto nella prima link qui sopra:

[2011-11-26 16:39:52 - Myproj] Conversion to Dalvik format failed with error 1 

Potrebbe qualcuno si prega di far luce su questo?

+1

Secondo il loro sito: "E 'in particolare un modo per simulare un browser per scopi di test ed è destinato ad essere utilizzato all'interno di un altro framework di test come JUnit o TestNG. " Mi chiedo perché è necessario simulare un browser virtuale, quando Android ha un browser Webkit e un test JUnit? https://developer.android.com/tools/testing/testing_android.html – NoBugs

risposta

0

Proprio come ULsies affermato nei commenti HtmlUnit fa ==> HtmlUnit è un "navigatore GUI-Less per i programmi Java". Modella i documenti HTML e fornisce un'API che consente di richiamare pagine, compilare moduli, fare clic su collegamenti, ecc., Proprio come fai nel tuo browser "normale".

che è esattamente simile al widget di WebView fornito all'interno del SDK di Android non avete bisogno di qualsiasi altro vaso in più per aprire una pagina web all'interno della vostra attività

come da google documentazione Android Un WebView è una vista che consente di visualizzare le pagine web .it utilizza il motore di rendering WebKit per visualizzare le pagine web e include metodi per spostarsi avanti e indietro attraverso una storia, zoom in e out, eseguire ricerche di testo e altro ancora.

aggiungere questo al tuo file di layout XML attività.

<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/webview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
    /> 

e questo al file di classe attività ..

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.loadUrl("http://www.your url .com"); 

più su questo qui: http://developer.android.com/guide/webapps/webview.html

+1

Forse lui vuole usarlo per l'analisi invece di visualizzare solo il sito web – user1810737

+0

webview ti dà la possibilità di recuperare il codice sorgente del sito web che può essere memorizzato e analizzato. Molti tutorial sono lì per fare questo basta google! – user1910290

+0

Anche io ho bisogno di questo. Ho bisogno di un servizio Android per analizzare una pagina html dopo l'esecuzione di qualche codice javascript. Quindi puoi aiutarmi a far funzionare htmlunit su Android? – Totalys

2

XML-API-1.3.04.jar contiene classi principali. Devi modificare il barattolo e cancellare quelle classi.

prega di notare che, almeno nella versione attuale di ADT, si stanno ottenendo un messaggio che spiega il problema:

Ill-advised or mistaken usage of a core class (java.* or javax.*) 
when not building a core library. 
Problemi correlati