【问题标题】:HTMLUnit and Android: JAXP incompabilityHTMLUnit 和 Android:JAXP 不兼容
【发布时间】:2011-10-01 16:16:42
【问题描述】:

尝试连接到“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: 错误/AndroidRuntime(289): 致命异常: main 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(Native Method) 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 的解决方案吗?

我们将不胜感激。

【问题讨论】:

    标签: android htmlunit


    【解决方案1】:

    我通过降级到 htmlunit 2.8 解决了

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 1970-01-01
      • 2020-11-15
      • 2023-03-24
      • 2011-05-24
      • 2013-01-26
      • 2019-09-22
      • 2019-05-23
      • 2015-04-22
      相关资源
      最近更新 更多