Подтвердить что ты не робот

Приложение Htmlunit для Android

Кто-нибудь получил HTMLUnit (или HtmlUnitDriver) для работы в приложениях Android?

Это проблема: появляется следующее сообщение об ошибке:

11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule

Это то, что я сделал:. Я попытался добавить ссылки на банки, перечисленные в следующей ссылке (как в зависимости от проекта, так и в Project Transitive Dependencies - только для компиляции, исключая тестовые банки):

http://htmlunit.sourceforge.net/dependencies.html

Однако Eclipse продолжал сбой, затем я нашел несколько вопросов, говорящих, что некоторые фляги уже содержатся в 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, поэтому я вернул эту ссылку к проекту, но приложение не будет создавать вообще сообщение с тем же сообщением об ошибке, описанным в первой ссылке выше:

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

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

4b9b3361

Ответ 1

xml-apis-1.3.04.jar содержит основные классы. Вы должны изменить банку и удалить эти классы.

Обратите внимание, что, по крайней мере, в текущей версии ADT вы получаете сообщение, объясняющее проблему:

Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.

Ответ 2

Так же, как ULsies заявили в комментариях, Htmlunit делает это == > HtmlUnit - это "браузер GUI-Less для Java-программ". Он моделирует HTML-документы и предоставляет API, который позволяет вам вызывать страницы, заполнять формы, ссылки на ссылки и т.д.... так же, как вы делаете в своем "обычном" браузере.

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

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