Sto utilizzando una visualizzazione Web nella mia applicazione. Webview viene creato utilizzando il contesto dell'applicazione. App si blocca su clic su qualsiasi casella di selezioneArresto anomalo dell'app quando si fa clic sulla casella di selezione nella vista web
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)
Sono ben consapevole che questo problema è stato fatto già molte volte, ma io sono ancora trovare qualsiasi soluzione di lavoro. Questo problema verrà risolto se utilizzo il contesto dell'attività ma devo usare il contesto dell'applicazione a causa di altri problemi. Per altri avvisi e finestre di dialogo li ho gestiti ignorando onJsAlert() in webchromeclient, ma non sono in grado di scoprire come posso intercettarlo nella mia webview e creare la mia finestra di selezione.
Qualsiasi tipo di suggerimento/aiuto è molto apprezzato.
Aggiunta di un campione fittizio della mia realizzazione WebView
class MyWebView extends WebView
{
MyWebView(Context context)
{
super(context.getApplicationContext());
setWebChromeClient(myWebChromeClient);
setWebViewClient(myWebViewClient);
}
}
cosa hai tenuto in sospeso è Activity o WebView? – Bhavin
la sua webview. Viene richiamato da un'attività diversa. Sto creando una webview in fase di runtime (non sto usando alcun layout per questo) utilizzando il contesto dell'applicazione – androgeek
se sei a conoscenza di tale situazione, quindi devi utilizzare il contesto Attività piuttosto che Applicazione, poiché stai provando per fare alcune cose dell'interfaccia utente senza il contesto dell'interfaccia utente che dovrebbe essere di attività. –