HTMLUnit 和 Android:JAXP 不兼容

发布于 2024-12-07 20:25:32 字数 4029 浏览 3 评论 0原文

尝试连接到“www.google.com”抛出一个简单的 HTMLUnit HTMLUnit 的 WebClient 类初始化因与 android jaxp impl 不兼容而失败:

    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);

    HtmlPage page1 = null;
    try {
        page1 = webClient.getPage("http://www.google.com/");
    } catch (FailingHttpStatusCodeException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block

....

09-30 23:05:57.867: ERROR/AndroidRuntime(289): FATAL例外:主要 09-30 23:05:57.867:错误/AndroidRuntime(289):java.lang.RuntimeException:无法启动活动ComponentInfo {com.mygo/com.mygo.HTMLUnitActivity}:java.lang.IllegalStateException:方法“jsxGet_encoding”是未找到编码属性com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 09-30 23:05:57.867: 错误/AndroidRuntime(289): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 09-30 23:05:57.867:错误/AndroidRuntime(289):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.os.Handler.dispatchMessage(Handler.java:99) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.os.Looper.loop(Looper.java:123) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.app.ActivityThread.main(ActivityThread.java:4627) 09-30 23:05:57.867:错误/AndroidRuntime(289):在java.lang.reflect.Method.invokeNative(本机方法) 09-30 23:05:57.867:错误/AndroidRuntime(289):在java.lang.reflect.Method.invoke(Method.java:521) 09-30 23:05:57.867: 错误/AndroidRuntime(289): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-30 23:05:57.867:错误/AndroidRuntime(289):在dalvik.system.NativeStart.main(本机方法) 09-30 23:05:57.867:错误/AndroidRuntime(289):引起:java.lang.IllegalStateException:在com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule中找不到编码属性的方法“jsxGet_encoding” 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.javascript.configuration.ClassConfiguration.addProperty(ClassConfiguration.java:109) 09-30 23:05:57.867:错误/AndroidRuntime(289):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.parsePropertyElement(JavaScriptConfiguration.java:437) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.parseClassElement(JavaScriptConfiguration.java:384) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.buildUsageMap(JavaScriptConfiguration.java:312) 09-30 23:05:57.867:错误/AndroidRuntime(289):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration。(JavaScriptConfiguration.java:147) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.getInstance(JavaScriptConfiguration.java:237) 09-30 23:05:57.867: 错误/AndroidRuntime(289): 在 com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.(JavaScriptEngine.java:117) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.WebClient.init(WebClient.java:215) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.gargoylesoftware.htmlunit.WebClient。(WebClient.java:189) 09-30 23:05:57.867:错误/AndroidRuntime(289):在com.mygo.HTMLUnitActivity.onCreate(HTMLUnitActivity.java:22) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-30 23:05:57.867:错误/AndroidRuntime(289):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

  • 我应该降级htmlunit吗? (我用的是2.9)。
  • 在Android SDK上使用htmlunit还有其他解决方案吗?

任何帮助将不胜感激。

Trying to connect to "www.google.com" throw a simple HTMLUnit The WebClient class initialization of HTMLUnit failed on incompatibility with android jaxp impl:

    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);

    HtmlPage page1 = null;
    try {
        page1 = webClient.getPage("http://www.google.com/");
    } catch (FailingHttpStatusCodeException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block

....

09-30 23:05:57.867: ERROR/AndroidRuntime(289): FATAL EXCEPTION: main
09-30 23:05:57.867: ERROR/AndroidRuntime(289): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mygo/com.mygo.HTMLUnitActivity}: java.lang.IllegalStateException: Method 'jsxGet_encoding' was not found for encoding property in com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.os.Handler.dispatchMessage(Handler.java:99)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.os.Looper.loop(Looper.java:123)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at java.lang.reflect.Method.invokeNative(Native Method)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at java.lang.reflect.Method.invoke(Method.java:521)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at dalvik.system.NativeStart.main(Native Method)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): Caused by: java.lang.IllegalStateException: Method 'jsxGet_encoding' was not found for encoding property in com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.ClassConfiguration.addProperty(ClassConfiguration.java:109)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.parsePropertyElement(JavaScriptConfiguration.java:437)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.parseClassElement(JavaScriptConfiguration.java:384)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.buildUsageMap(JavaScriptConfiguration.java:312)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.(JavaScriptConfiguration.java:147)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.getInstance(JavaScriptConfiguration.java:237)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.(JavaScriptEngine.java:117)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.WebClient.init(WebClient.java:215)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.gargoylesoftware.htmlunit.WebClient.(WebClient.java:189)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at com.mygo.HTMLUnitActivity.onCreate(HTMLUnitActivity.java:22)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-30 23:05:57.867: ERROR/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

  • Should I downgrade htmlunit ? (I'm using 2.9).
  • Any other solution to use htmlunit on Android SDK?

Any help will be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆悲凉 2024-12-14 20:25:32

我通过降级到 htmlunit 2.8 解决了

I solved by downgrading to htmlunit 2.8

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文