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)
importa significato per aggiungerli al percorso di build in Eclipse *. Inoltre, l'aggiunta di JUnit come uno dei vasi ha aiutato. – Kgrover