Htmlunit在Android应用程序上

Uli*_*ses 17 java android htmlunit

有没有人得到HTMLUnit(或HtmlUnitDriver)来使用Android应用程序?

这是问题:我收到以下错误消息:

11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
Run Code Online (Sandbox Code Playgroud)

这就是我所做的:我尝试添加对以下链接中列出的jar的引用(在Project Dependencies和Project Transitive Dependencies下 - 仅编译,不包括test jar):

http://htmlunit.sourceforge.net/dependencies.html

然而Eclipse一直在崩溃,然后我发现一些问题说Android SDK中已经包含了一些jar:

xalan, xercesImpl and xml-apis
Run Code Online (Sandbox Code Playgroud)

Android上的HtmlUnit

HttpClient
Run Code Online (Sandbox Code Playgroud)

Android编程HtmlUnit

所以我删除了对这些罐子的引用,只保留以下内容:

commons-codec-1.4.jar
commons-collections-3.2.1.jar
commons-io-2.0.1.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
cssparser-0.9.5.jar
htmlunit-2.9.jar
htmlunit-core-js-2.9.jar
httpmime-4.1.2.jar
nekohtml-1.9.15.jar
sac-1.3.jar
httpcore-4.1.3.jar
Run Code Online (Sandbox Code Playgroud)

正是在这个时候,应用程序能够运行,但是当执行以下代码行时,我开始得到错误:

final WebClient webClient = new WebClient();

11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
Run Code Online (Sandbox Code Playgroud)

我做了一个网络搜索,发现xml-apis-1.3.04.jar包含org/w3c/dom/css/CSSRule,所以我将该引用放回到项目中,但应用程序根本不会构建同样的错误消息在上面的第一个链接中描述:

[2011-11-26 16:39:52 - Myproj] Conversion to Dalvik format failed with error 1
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?

use*_*290 0

正如 ULsies 在评论中所述 Htmlunit 的作用 ==> HtmlUnit 是“用于 Java 程序的无 GUI 浏览器”。它对 HTML 文档进行建模并提供一个 API,允许您调用页面、填写表单、单击链接等......就像您在“普通”浏览器中所做的那样。

这与 android sdk 中提供的 webview 小部件完全相同,您不需要任何其他额外的 jar 即可在 Activity 中打开网页

根据 google android 文档,WebView 是显示网页的视图。它使用 WebKit 渲染引擎来显示网页,并包含在历史记录中向前和向后导航、放大和缩小、执行文本搜索等的方法。

将其添加到您的活动布局 xml 文件中。

    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
  />
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的活动类文件中..

WebView myWebView = (WebView) findViewById(R.id.webview);
 myWebView.loadUrl("http://www.your url .com");
Run Code Online (Sandbox Code Playgroud)

更多信息请参见: http://developer.android.com/guide/webapps/webview.html

  • 也许他想用它来解析而不是仅仅查看网站 (2认同)