Android:使用HTML单元和Eclipse时出现CSS错误

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文件(工作)

Chr*_*ach 1

我认为你的 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”

编辑 要查找重复的类,请使用您最喜欢的解压缩工具提取所有罐子并等待“此文件已存在”。