私のアプリケーションでwebviewを使用しています。 Webviewはアプリケーションコンテキストを使用して作成されます。アプリケーションは、私はこの質問はすでに何度も頼まれていることも承知していますいずれかの選択ボックスwebviewで選択ボックスをクリックするとアプリケーションがクラッシュする
04-10 14:19:14.502: E/AndroidRuntime(12628): Uncaught handler: thread main exiting due to uncaught exception
04-10 14:19:14.542: E/AndroidRuntime(12628): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.view.ViewRoot.setView(ViewRoot.java:476)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.app.Dialog.show(Dialog.java:239)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.webkit.WebView$InvokeListBox.run(WebView.java:9509)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.os.Handler.handleCallback(Handler.java:609)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.os.Looper.loop(Looper.java:123)
04-10 14:19:14.542: E/AndroidRuntime(12628): at android.app.ActivityThread.main(ActivityThread.java:4595)
04-10 14:19:14.542: E/AndroidRuntime(12628): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 14:19:14.542: E/AndroidRuntime(12628): at java.lang.reflect.Method.invoke(Method.java:521)
04-10 14:19:14.542: E/AndroidRuntime(12628): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-10 14:19:14.542: E/AndroidRuntime(12628): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-10 14:19:14.542: E/AndroidRuntime(12628): at dalvik.system.NativeStart.main(Native Method)
をクリックする上でクラッシュが、私は、任意の実用的なソリューションを見つけることがまだいます。 この問題は、アクティビティコンテキストを使用すると解決されますが、他の懸案事項のためにアプリケーションコンテキストを使用する必要があります。他のアラートやダイアログでは、webchromeclientのonJsAlert()をオーバーライドして処理しましたが、Webビューでこれを傍受して自分のセレクタダイアログを作成する方法を見つけることができません。
どのような提案/助けも大歓迎です。私はあなたがこのような場合にextends Activity
を使用したいと思い、私のWebView実装
class MyWebView extends WebView
{
MyWebView(Context context)
{
super(context.getApplicationContext());
setWebChromeClient(myWebChromeClient);
setWebViewClient(myWebViewClient);
}
}
あなたは何を拡張したのですか?アクティビティかWebViewですか? – Bhavin
そのwebview。アプリケーションのコンテキストを使用して実行時にwebviewを作成しています(私はそのレイアウトを使用していません)。 – androgeek
このような状況を認識している場合は、アプリケーションではなくActivityのコンテキストを使用する必要があります。アクティビティーであるべきUIコンテキストなしでいくつかのUIのものを行う。 –