java - play - Htmlunit en la aplicación de Android
nombre del paquete de google play (2)
¿Alguien ha conseguido que HTMLUnit (o HtmlUnitDriver) funcione en las aplicaciones de Android?
Este es el problema : me aparece el siguiente mensaje de error:
11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
Esto es lo que hice: intenté agregar referencias a los frascos enumerados en el siguiente enlace (en Dependencias del proyecto y Dependencias transitivas del proyecto (solo compilación, excluyendo los frascos de prueba):
http://htmlunit.sourceforge.net/dependencies.html
Sin embargo, Eclipse siguió fallando, luego encontré algunas preguntas que dicen que algunos tarros ya están contenidos en el SDK de Android:
xalan, xercesImpl and xml-apis
HttpClient
Así que eliminé las referencias a estos frascos manteniendo solo lo siguiente:
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
Fue en este punto cuando la aplicación pudo ejecutarse, pero cuando se ejecutó la siguiente línea de código, empecé a recibir el error:
final WebClient webClient = new WebClient();
11-26 16:27:26.617: E/AndroidRuntime(1265): java.lang.NoClassDefFoundError: org/w3c/dom/css/CSSRule
Hice una búsqueda en la web y encontré que xml-apis-1.3.04.jar contiene org / w3c / dom / css / CSSRule, así que puse esa referencia de nuevo en el proyecto, pero la aplicación no se generó diciendo el mismo mensaje de error. Descrito en el primer enlace anterior:
[2011-11-26 16:39:52 - Myproj] Conversion to Dalvik format failed with error 1
¿Podría alguien por favor arrojar algo de luz sobre esto?
Al igual que ULsies se indica en los comentarios, Htmlunit hace esto ==> HtmlUnit es un "navegador sin GUI para programas Java". Modela documentos HTML y proporciona una API que le permite invocar páginas, completar formularios, hacer clic en enlaces, etc. ... tal como lo hace en su navegador "normal".
que es exactamente similar al widget de webview provisto en el SDK de Android, no necesitas ningún otro contenedor adicional para abrir una página web dentro de tu actividad
según la documentación de Google para Android. Una vista web es una vista que muestra páginas web. Utiliza el motor de renderizado WebKit para mostrar páginas web e incluye métodos para navegar hacia adelante y hacia atrás en un historial, acercar y alejar, realizar búsquedas de texto y más.
agregue esto a su archivo xml de diseño de actividad.
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
y esto a su archivo de clase de actividad ..
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.your url .com");
más sobre esto aquí: http://developer.android.com/guide/webapps/webview.html
xml-apis-1.3.04.jar contiene clases principales. Tienes que modificar el jar y borrar esas clases.
Tenga en cuenta que, al menos en la versión actual de ADT, recibirá un mensaje que explica el problema:
Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.