2012-09-28 34 views
12

首先,感謝您閱讀本文並提前幫助解決此問題。 我目前正在爲Android創建一個webshel​​l來運行Webapps,這是在Android 2.2 SDK上運行的。Android 2.2 Webview導致OpenGL ES API沒有當前上下文(每個線程記錄一次)

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! 

這是我在我的主類代碼:

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; 
    } 
} 

而在去年

當我調試我的應用程序(這是通過USB在Android 4.0手機完成)出現的問題但不是最不重要的是運行的xml im:

<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> 

我知道這個配置幫助了其他rs:

<application android:hardwareAccelerated="true" ...> 

但是,這是SDK的2.3.3以上,我運行的SDK不支持此功能。

我真的希望你能幫助我解決這個問題。

由於提前,

大衛

+0

如果有任何方式使用較新的SDK,您可以隨時嘗試setLayerType(View.LAYER_TYPE_SOFTWARE,null); –

+0

您可以使用反射更改爲軟件層,以便在舊設備上仍能正常工作。我在這裏描述瞭如何:http://stackoverflow.com/questions/7781655/android-setlayertype-webview/11145961#11145961 –

+0

您是否使用SDK 2.2或您是否可以使用更新的SDK(例如4.2。 2)但通過支持API支持2.2設備? – rockeye

回答

2

要獲得android:hardwareAccelerated財產,還支持API 8(2.2),設置targetSdkVersion至11,但離開minSdkVersion,因爲它是:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" /> 
<application android:hardwareAccelerated="true" ... 

當運行在API 11之前的設備上,hardwareAccelerated只會被忽略。

+0

我運行在2.2到4.2然後任何解決方案? – PankajAndroid

+0

這就在這裏。它不適合你嗎?只需將targetSdkVersion設置爲17即可 - 4.2 –

+0

對不起,它工作正常 – PankajAndroid

相關問題