Kgr*_*ver 5 java eclipse android htmlunit
我正在使用Html Unit转到网页,填写一些表格,然后单击按钮进入下一个网页.那个新的网页(在我的代码中称为newPage)是我从中提取html源代码的.
这种方法在Netbeans中完美运行(虽然它确实提供了过多的警告)
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();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在运行Android的Eclipse中,它说
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
Run Code Online (Sandbox Code Playgroud)
在logcat中.
此外,它没有将message2的文本设置为我想要的html,虽然当我在Netbeans中尝试并打印"html"时,它确实打印了页面的完整html源代码!
总之,有两个问题.Eclipse没有成功获取html,并且它给出了一个错误,说无法找到CSSCharsetRule类.我想我已经为此导入了相应的.jar,但我不确定,因为HTML Unit附带了大约15个.jars而我无法全部导入它们,否则应用程序在模拟器和手机中出现问题.
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).
Run Code Online (Sandbox Code Playgroud)
但是,现在我遇到了
"转换为Dalvik格式失败,错误1"
错误.
是否有可能导致任何问题导致html的Null值,以及如何修复Dalvik转换错误?
.jar Eclipse(太多使app变重,包括xml-apis导致Dalvik错误)

Netbeans中的Jar文件(工作)

我认为你的 Eclipse 中的类路径有问题:
Could not find class 'org.w3c.dom.css.CSSCharsetRule'
Run Code Online (Sandbox Code Playgroud)
您是否已将所有 Jars 包含到构建路径中?
Conversion to Dalvik Format Failed with Error 1
Run Code Online (Sandbox Code Playgroud)
这告诉我,您的 *.class 之一无法转换为 *dex 文件
也许你有两个包含相同类的 jar 文件:
我解决了这个问题。
我的构建路径上似乎有两个 jar,其中包含相同的包和类。
外部 JAR 上“转换为 Dalvik 格式失败,错误 1”
编辑 要查找重复的类,请使用您最喜欢的解压缩工具提取所有罐子并等待“此文件已存在”。