【发布时间】:2011-11-26 22:54:19
【问题描述】:
有人让 HTMLUnit(或 HtmlUnitDriver)在 Android 应用程序上工作吗?
这是问题:我收到以下错误消息:
11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
这就是我所做的:我尝试添加对以下链接中列出的 jar 的引用(在项目依赖项和项目传递依赖项下 - 仅编译,不包括测试 jar):
http://htmlunit.sourceforge.net/dependencies.html
然而 Eclipse 一直在崩溃,然后我发现一些问题说一些 jars 已经包含在 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
有人能解释一下吗?
【问题讨论】:
-
根据他们的网站:“这是一种专门模拟浏览器以进行测试的方法,旨在用于其他测试框架,例如 JUnit 或 TestNG。”我想知道当Android有Webkit浏览器和JUnit测试时,为什么需要模拟虚拟浏览器? developer.android.com/tools/testing/testing_android.html