Antes que nada, gracias por leer esta publicación y por adelantado por ayudarme con este asunto. Actualmente estoy creando un webshell para Android para ejecutar Webapps, esto se ejecuta en el Android 2.2 SDK.Android 2.2 Webview causa la API OpenGL ES sin contexto actual (registrado una vez por hilo)
El problema aparece cuando puedo depurar mi aplicación (esto se hace en un Android 4.0 Teléfono a través de USB):
09-28 11:32:32.415: D/dalvikvm(25629): Debugger has detached; object registry had 576 entries
09-28 11:32:36.355: W/ActivityThread(25764): Application com.android_api8_webshell is waiting for the debugger on port 8100...
09-28 11:32:36.375: I/System.out(25764): Sending WAIT chunk
09-28 11:32:36.380: I/dalvikvm(25764): Debugger is active
09-28 11:32:36.575: I/System.out(25764): Debugger has connected
09-28 11:32:36.575: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:36.775: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:36.975: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:37.175: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:37.375: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:37.575: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:37.780: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:37.980: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:38.180: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:38.385: I/System.out(25764): waiting for debugger to settle...
09-28 11:32:38.585: I/System.out(25764): debugger has settled (1497)
09-28 11:32:38.710: I/webclipboard(25764): clipservice: [email protected]
09-28 11:32:38.765: V/StringUrl(25764): String: http://www.cidesign.nl
09-28 11:32:38.785: D/WML_SISO(25764): InitPasteboardJni
09-28 11:32:38.795: V/(25764): NotificationPresenterImpl::setSettingsValue 0
09-28 11:32:38.795: V/(25764): NotificationPresenterImpl::setSettingsValue 0
09-28 11:32:38.800: D/webkit(25764): Firewall not null
09-28 11:32:38.800: D/webkit(25764): euler: isUrlBlocked = false
09-28 11:32:38.930: D/CLIPBOARD(25764): Hide Clipboard dialog at Starting input: finished by someone else... !
09-28 11:32:42.440: I/GATE(25764): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
09-28 11:32:42.455: E/libEGL(25764): call to OpenGL ES API with no current context (logged once per thread)
09-28 11:32:42.455: D/ShaderProgram(25764): couldn't load the vertex shader!
09-28 11:32:42.455: E/libEGL(25764): call to OpenGL ES API with no current context (logged once per thread)
09-28 11:32:42.455: D/ShaderProgram(25764): couldn't load the vertex shader!
09-28 11:32:42.455: E/libEGL(25764): call to OpenGL ES API with no current context (logged once per thread)
09-28 11:32:42.455: D/ShaderProgram(25764): couldn't load the vertex shader!
09-28 11:32:42.455: E/libEGL(25764): call to OpenGL ES API with no current context (logged once per thread)
09-28 11:32:42.455: D/ShaderProgram(25764): couldn't load the vertex shader!
09-28 11:32:42.455: E/libEGL(25764): call to OpenGL ES API with no current context (logged once per thread)
09-28 11:32:42.455: D/ShaderProgram(25764): couldn't load the vertex shader!
Este es mi código en mi clase principal:
package com.android_api8_webshell;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebSettings;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView myWebView = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
Log.v("StringUrl", "String: " + getResources().getText(R.string.url));
myWebView.loadUrl(getResources().getText(R.string.url).toString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Y por último, pero no menos importante, es el xml im que se ejecuta con:
<resources>
<string name="title_activity_main">Main</string>
<string name="url">http://www.cidesign.nl</string>
<string name="app_name">Android_API8_WebShell</string>
<string name="menu_settings">Settings</string>
</resources>
Conozco esta configuración que ayudó a othe RS:
<application android:hardwareAccelerated="true" ...>
Ésta es sin embargo para el SDK de arriba 2.3.3, el SDK estoy corriendo con tenga soporte para esta función.
Realmente espero que me puedan ayudar con este asunto.
Gracias de antemano,
David
Si hay alguna forma de usar un SDK más nuevo, siempre puede probar setLayerType (View.LAYER_TYPE_SOFTWARE, null); –
Puede cambiar a la capa de software utilizando reflexiones para que funcione en dispositivos más antiguos. Describí cómo aquí: http://stackoverflow.com/questions/7781655/android-setlayertype-webview/11145961#11145961 –
Es obligatorio para usted usar el SDK 2.2 o podría usar un SDK más reciente (digamos 4.2. 2) pero compatible con 2.2 dispositivos a través de la API de soporte? – rockeye