2012-01-03 10 views
5

Utilizzo l'unità HTML per andare a una pagina Web, compilare alcuni moduli e fare clic su un pulsante per passare alla pagina Web successiva. Quella nuova pagina web (chiamata newPage nel mio codice) è ciò di cui sto estraendo l'origine html.Android: errore CSS quando si utilizza l'unità HTML ed Eclipse

Questo metodo funziona perfettamente in Netbeans (anche se dà una quantità eccessiva di avvertimenti)

import org.jsoup.Jsoup; 

/* Regular (textview, button, etc) imports */ 

import com.gargoylesoftware.htmlunit.BrowserVersion; 
import com.gargoylesoftware.htmlunit.Page; 
import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlAnchor; 
import com.gargoylesoftware.htmlunit.html.HtmlElement; 
import com.gargoylesoftware.htmlunit.html.HtmlForm; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; 
import com.gargoylesoftware.htmlunit.html.HtmlTextInput; 


     String username = "USERNAME", school = "SCHOOL", userpassword = "PASSWORD"; 
     HtmlElement loginName = null; 
     HtmlElement password = null; 
     //HtmlPage newPage; 
     HtmlAnchor anchorByHref = null; 
     try { 
      WebClient webClient = new WebClient(); 
      final HtmlPage page = webClient 
        .getPage("https://cupertino.schoolloop.com/portal/login?d=x&return_url=1325402408153"); 
      loginName = page.getElementByName("login_name"); 
      password = page.getElementByName("password"); 
      loginName.setTextContent(username); 
      loginName.setAttribute("value", username); 
      password.setAttribute("value", userpassword); 
      password.setTextContent(userpassword); 
      anchorByHref = page 
        .getAnchorByHref("javascript:document.form.event_override.value='login';document.form.submit();"); 
      HtmlPage newPage = anchorByHref.click(); 

      webClient.waitForBackgroundJavaScript(10000); 
      String html = newPage.getWebResponse().getContentAsString(); 


      message2.setText(html); 
     } catch (Exception e) { 
      e.printStackTrace(); 

     } 


} 

Tuttavia, in Eclipse con sistema operativo Android, si dice

01-02 17:38:54.099: E/dalvikvm(23163): Could not find class 'org.w3c.dom.css.CSSCharsetRule', referenced from method com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule.getCharsetRule 

nel logcat.

Inoltre, non imposta il testo di Message2 come il html voglio anche se quando provo questo in Netbeans e stampa "html" è in effetti stampare il sorgente html completo della pagina!

In sintesi, ci sono 2 problemi. Eclipse non sta ottenendo con successo l'html e sta dando un errore dicendo che non è stato possibile trovare la classe CSSCharsetRule. Penso di aver importato l'appropriato .jar per questo, ma non sono sicuro perché HTML Unit ha circa 15 .jars e non posso importarli tutti, altrimenti l'applicazione ha problemi con l'emulatore e il telefono.

I have figured out that the error was due to not importing xml-apis-1.3.04.jar (which was imported in the Netbeans Project). 

Tuttavia, ora ho incontrato un

"Conversione a Dalvik formato riuscita con errore 1"

errore.

È possibile che uno qualsiasi dei problemi causi il valore Null di html e come posso correggere l'errore di conversione di Dalvik?

.jar Eclipse (troppi rende app pesante, compreso xml-apis causa l'errore Dalvik)

file Jar a Netbeans (di lavoro)

+0

importa significato per aggiungerli al percorso di build in Eclipse *. Inoltre, l'aggiunta di JUnit come uno dei vasi ha aiutato. – Kgrover

risposta

1

Penso che tu abbia un problema con il classpath all'interno di eclipse:

Could not find class 'org.w3c.dom.css.CSSCharsetRule' 

Avete tutti i barattoli inclusi nel percorso di costruzione?

Conversion to Dalvik Format Failed with Error 1 

Questo mi dice, che uno dei tuoi * .class non può essere convertet in un dex-file *

Forse si hanno due jar-file con la stessa classe interna:

Ho risolto il problema.

Sembra che abbia due jar sul mio buildpath che includono lo stesso pacchetto e classi.

"Conversion to Dalvik format failed with error 1" on external JAR

modificare Per trovare le classi duplicate, estrarre tutti i barattoli con il tuo unzip-strumento preferito e aspettare "Questo file esiste aready".

+0

Come faccio a capire quali file .jar sono in conflitto? Inoltre, pensi che questo sia il motivo per cui la variabile html restituisce null? (Nessun contenuto lì) di nuovo, se importare * tutti * i jar in Netbeans, funziona. Se importo tutti i jar in Eclipse, l'applicazione diventa troppo pesante. Ho modificato la mia risposta con le immagini dei vasi importati in ciascun IDE se ciò sarà di aiuto. – Kgrover

+0

inoltre, penso che l'aggiunta del jar xml-apis sia ciò che * ha * la classe 'org.w3c.dom.css.CSSCharsetRule' ma questo è ciò che causa l'errore Dalvik. – Kgrover

+0

Grazie per il JARS, espandi l'eclissi ADT e il contenitore ClassPath per Android. Forse hai API duplicate lì. –

Problemi correlati