Estoy usando la unidad HTML para ir a una página web, completar algunos formularios y hacer clic en un botón para acceder a la página web siguiente. Esa nueva página web, (llamada newPage en mi código) es de lo que estoy extrayendo la fuente html.Android: error de CSS al utilizar HTML Unit & Eclipse
Este método funciona perfectamente en Netbeans (aunque se da una cantidad excesiva de advertencias)
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();
}
}
Sin embargo, en Eclipse con Android, se 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
en el Logcat.
Además, no establece el texto de mensaje2 como el html quiero aunque cuando intento esto en Netbeans e imprimir "html" lo hace, de hecho, se imprime el código HTML completo de la página!
En resumen, hay 2 problemas. Eclipse no está obteniendo correctamente el html, y está dando un error al decir que no pudo encontrar la clase CSSCharsetRule. Creo que he importado el .jar apropiado para esto, pero no estoy seguro porque HTML Unit viene con alrededor de 15 .jar y no puedo importarlos todos de lo contrario la aplicación tiene problemas en el emulador y el teléfono.
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).
Sin embargo, ahora me encuentro con un "Formato de conversión a Dalvik se produjo el error 1"
error.
¿Es posible que alguno de los problemas provoque el valor nulo de html y cómo soluciono el error de conversión de Dalvik?
.jar Eclipse (demasiados hace aplicación pesada, e incluyendo XML-API hace que Dalvik error)
archivos Jar en Netbeans (de trabajo)
importando significado para agregarlos a la ruta de compilación en Eclipse *. Además, agregar JUnit como uno de los frascos ayudó. – Kgrover