Java HTMLUnit没有';行不通

Java HTMLUnit没有';行不通,java,android,htmlunit,Java,Android,Htmlunit,我已经写了一个程序,用HTMLUnit登录到一个网站,它工作得很好。现在我想在我正在构建的Android应用程序中使用它,但它不起作用。我得到这个错误: Conversion to Dalvik format failed with error 1 一旦我移除一些罐子,比如Jetty罐子,我就会不断遇到这个错误 Could not find class 'com.gargoylesoftware.htmlunit.html.HtmlDivision', referenced from meth

我已经写了一个程序,用HTMLUnit登录到一个网站,它工作得很好。现在我想在我正在构建的Android应用程序中使用它,但它不起作用。我得到这个错误:

Conversion to Dalvik format failed with error 1
一旦我移除一些罐子,比如Jetty罐子,我就会不断遇到这个错误

Could not find class 'com.gargoylesoftware.htmlunit.html.HtmlDivision', referenced from method com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.init
几秒钟后,这个:

11-19 13:47:26.485: E/AndroidRuntime(18991): FATAL EXCEPTION: AsyncTask #1
11-19 13:47:26.485: E/AndroidRuntime(18991): java.lang.RuntimeException: An error occured while executing doInBackground()
11-19 13:47:26.485: E/AndroidRuntime(18991):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.lang.Thread.run(Thread.java:856)
11-19 13:47:26.485: E/AndroidRuntime(18991): Caused by: java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSCharsetRule
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.lang.Class.getDeclaredMethods(Native Method)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.lang.Class.getDeclaredMethods(Class.java:703)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.processClass(JavaScriptConfiguration.java:444)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.buildUsageMap(JavaScriptConfiguration.java:409)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.<init>(JavaScriptConfiguration.java:365)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.getInstance(JavaScriptConfiguration.java:381)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.<init>(JavaScriptEngine.java:130)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.WebClient.init(WebClient.java:218)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:193)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:184)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.cofely.VPNProfileLogin.doInBackground(VPNProfileLogin.java:28)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at com.cofely.VPNProfileLogin.doInBackground(VPNProfileLogin.java:1)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-19 13:47:26.485: E/AndroidRuntime(18991):    ... 5 more
11-19 13:47:26.485: E/AndroidRuntime(18991): Caused by: java.lang.ClassNotFoundException: org.w3c.dom.css.CSSCharsetRule
11-19 13:47:26.485: E/AndroidRuntime(18991):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-19 13:47:26.485: E/AndroidRuntime(18991):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-19 13:47:26.485: E/AndroidRuntime(18991):    ... 19 more
11-19 13:47:26.485:E/AndroidRuntime(18991):致命异常:AsyncTask#1
11-19 13:47:26.485:E/AndroidRuntime(18991):java.lang.RuntimeException:执行doInBackground()时出错
11-19 13:47:26.485:E/AndroidRuntime(18991):在android.os.AsyncTask$3.done(AsyncTask.java:299)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-19 13:47:26.485:E/AndroidRuntime(18991):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.lang.Thread.run(Thread.java:856)
11-19 13:47:26.485:E/AndroidRuntime(18991):由以下原因引起:java.lang.NoClassDefFoundError:org/w3c/dom/css/csscharestrule
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.lang.Class.getDeclaredMethods(本机方法)中
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.lang.Class.getDeclaredMethods(Class.java:703)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.processClass(JavaScriptConfiguration.java:444)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.buildUsageMap(JavaScriptConfiguration.java:409)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.(JavaScriptConfiguration.java:365)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.getInstance(JavaScriptConfiguration.java:381)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.(JavaScriptEngine.java:130)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.WebClient.init(WebClient.java:218)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.WebClient.(WebClient.java:193)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于com.gargoylesoftware.htmlunit.WebClient.(WebClient.java:184)
11-19 13:47:26.485:E/AndroidRuntime(18991):在com.cofely.VPNProfileLogin.doInBackground(VPNProfileLogin.java:28)
11-19 13:47:26.485:E/AndroidRuntime(18991):在com.cofely.VPNProfileLogin.doInBackground(VPNProfileLogin.java:1)
11-19 13:47:26.485:E/AndroidRuntime(18991):在android.os.AsyncTask$2.call(AsyncTask.java:287)
11-19 13:47:26.485:E/AndroidRuntime(18991):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-19 13:47:26.485:E/AndroidRuntime(18991):。。。还有5个
11-19 13:47:26.485:E/AndroidRuntime(18991):由以下原因引起:java.lang.ClassNotFoundException:org.w3c.dom.css.cscharsetrule
11-19 13:47:26.485:E/AndroidRuntime(18991):在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-19 13:47:26.485:E/AndroidRuntime(18991):位于java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-19 13:47:26.485:E/AndroidRuntime(18991):。。。还有19个

谁能告诉我这里发生了什么事?谢谢

缺少依赖项。APK中没有包含org.w3c.dom.css.cscharsetrule定义的JAR

在短时间的谷歌搜索后,我发现以下帖子:

如果您也需要在Android上使用jSoup而不是HtmlUnit,那么重写您的刮板似乎要容易得多。

看看这个:

对此不是100%确定,但您可能需要使用以下方法将项目中引用的一些JAR转换为dalvik格式:

dx --dex --output="c:\temp\dx.dex" "c:\temp\in.jar"

您得到了
NoClassDefFoundError
错误,可能是因为您从项目中删除了必要的JAR。

是的,我确实找到了答案。然而,我认为可能是在其中一个罐子里引起了Dalvikerror@BlackMagicDalvik 1错误上方是否存在顶级异常?不,这是它给出的第一个也是唯一一个错误situation@BlackMagic请参阅我的最新答案。似乎是一个已知的问题,没有有效的解决方案。我只找到了一个.dex文件,它是classes.dex。我不确定我是否可以转换它。我已经尝试了大多数顶级答案,最终导致我丢失了所有文件。你提到了两个问题。关于第二个问题,如果您
删除了一些jar,然后出现
找不到类
错误,那么我很确定您删除的jar比您应该删除的多:)是的,我知道,但我需要在两者之间找到某种方法。因为我需要这些课程,但我不能用这些罐子