我的應用程序使用WebView來顯示Flash視頻內容。
一切似乎順利 ,直到您嘗試播放Android ICS設備上的全屏。
它可以在較低版本的設備上正常工作。
在ICS設備上,它拋出一個NullPointerException。 這裏是我的代碼:Android ICS Flash WebView全屏投擲NullPointerException
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setVerticalScrollbarOverlay(true);
webView.setWebViewClient(new WebViewClient() {
private ProgressDialog pd;
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {
pd = new ProgressDialog(TrainingDetailActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("Loading");
pd.show();
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
this.dismissDialog();
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view,
String url) {
return false;
}
private void dismissDialog() {
if (pd != null) {
pd.dismiss();
pd = null;
}
}
});
webView.loadDataWithBaseURL(baseUrl, htmlstr, "text/html", "utf-8", null);
一些挖後,我發現,在ICS的android.webkit.PluginFullScreenHolder show()方法被調用,並拋出 的NullExceptionPointer。問題在那裏,而不是在我的代碼上。 我嘗試了一些工作,但都沒有工作。
- 圍繞工作:加入這一行:
webView.setWebChromeClient(new WebChromeClient());
這項工作圍繞着NullPointerException異常不會發生,但沒有聲音的視頻播放,並不會切換到 全屏模式。
我看了看周圍的StackOverflow的解決方案,這似乎解決我的問題最接近的是這樣的回答:
https://stackoverflow.com/a/9921073/1503155
但不幸的是回答者沒有解釋什麼是在他的代碼片段中的變量base
我仍然堅持。
我的問題是,有沒有辦法解決這個錯誤。是的,怎麼樣?
在此先感謝。
+1問你的老闆許可和試圖幫助。不幸的是,我仍然得到相同的空例外。也許我做錯了什麼。我設置我的webview是這樣的:WebView.setWebChromeClient(new FullscreenableChromeClient(this));這是使用該課程的正確方法嗎?無論如何,我會嘗試在我身邊看看我做錯了什麼。真的很感謝你的幫助,因爲我可以看到我仍然無法修復它。 –
是的,那就是你如何使用這個類。什麼是您收到錯誤的堆棧跟蹤? – Knossos
我在原帖中添加了stacktrace圖片。 –