有没有人使用HTMLUnit(或HtmlUnitDriver)来处理Android应用程序?
这是问题:我收到以下错误消息:
11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
这就是我所做的:我尝试添加对以下链接中列出的jar的引用(在Project Dependencies和Project Transitive Dependencies下 - 仅编译,不包括test jar):
http://htmlunit.sourceforge.net/dependencies.html
然而Eclipse一直在崩溃,然后我发现一些问题说Android SDK中已经包含了一些罐子:
xalan, xercesImpl and xml-apis
HttpClient
所以我删除了对这些罐子的引用,仅保留以下内容:
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
此时应用程序能够运行,但是当执行以下代码行时,我开始收到错误:
final WebClient webClient = new WebClient();
11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
我进行了网络搜索,发现 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
有人可以对此有所了解吗?
答案 0 :(得分:2)
xml-apis-1.3.04.jar 包含核心类。您必须修改jar并删除这些类。
请注意,至少在当前的ADT版本中,您会收到一条消息说明问题:
Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.
答案 1 :(得分:0)
正如ULsies在评论中所述Htmlunit这样做==> HtmlUnit是一个“用于Java程序的GUI-Less浏览器”。它模拟HTML文档,并提供一个API,允许您调用页面,填写表单,单击链接等...就像在“普通”浏览器中一样。
这与android sdk中提供的webview小部件完全相似,你不需要任何其他额外的jar来打开你活动中的网页
根据谷歌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"
/>
这是你的活动类文件..
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.your url .com");
此处更多内容:http://developer.android.com/guide/webapps/webview.html