Htmlunit на Android-приложении - PullRequest
       3

Htmlunit на Android-приложении

17 голосов
/ 27 ноября 2011

Кто-нибудь получил 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 продолжал падать, тогда я обнаружилнесколько вопросов о том, что некоторые файлы jar уже содержатся в Android SDK:

xalan, xercesImpl and xml-apis

HtmlUnit на Android

HttpClient

Программирование на Android HtmlUnit

Таким образом, я удалил ссылки на эти банки, оставив только следующее:

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 поэтому я вернул эту ссылку обратно в проект, но приложениеnild build вообще с тем же сообщением об ошибке, как описано в первой ссылке выше:

[2011-11-26 16:39:52 - Myproj] Conversion to Dalvik format failed with error 1

Может кто-нибудь пролить свет на это?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2013

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.
0 голосов
/ 10 февраля 2013

Как и в комментариях ULsies, Htmlunit делает это ==> HtmlUnit - это «браузер без графического интерфейса для Java-программ». Он моделирует документы HTML и предоставляет API, который позволяет вам вызывать страницы, заполнять формы, щелкать ссылки и т. Д., Как вы делаете это в «обычном» браузере.

, который в точности похож на виджет веб-просмотра, предоставляемый внутри Android SDK, вам не нужны никакие другие дополнительные jar-файлы для открытия веб-страницы внутри вашей деятельности

согласно документации по Google 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

...