You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Veniamin Craciun (JIRA)" <ji...@apache.org> on 2018/01/17 14:31:00 UTC
[jira] [Commented] (CB-13259) Crash on Samsung devices with android
6+
[ https://issues.apache.org/jira/browse/CB-13259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16328826#comment-16328826 ]
Veniamin Craciun commented on CB-13259:
---------------------------------------
[~reinierpd], I added some checks before dismissing the dialog.
And it looks like this right now.
{code:java|title=InAppBrowser.java|borderStyle=solid}
public void closeDialog() {
...
childView.setWebViewClient(
// NB: wait for about:blank before dismissing
public void onPageFinished(WebView view, String url) {
Context context = view.getContext();
if(dialog == null || !dialog.isShowing()){
return;
}
if(context instanceof Activity) {
if(!((Activity)context).isFinishing()) {
dialog.dismiss();
dialog = null;
}
}else {
dialog.dismiss();
dialog = null;
}
}
});
...
{code}
> Crash on Samsung devices with android 6+
> ----------------------------------------
>
> Key: CB-13259
> URL: https://issues.apache.org/jira/browse/CB-13259
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-plugin-inappbrowser
> Affects Versions: cordova@7.0.0
> Environment: InAppBrowser 1.7.1
> OS: Android 6 and 7
> Samsung and Huawei devices
> Reporter: Veniamin Craciun
> Priority: Major
>
> Using latest version of cordova and InAppBrowser a crash occurs on Samsung and Huawei devices that run Android 6 or 7.
> Below is a google crash report from such device:
> {color:red}java.lang.IllegalArgumentException:
> at android.view.WindowManagerGlobal.findViewLocked (WindowManagerGlobal.java:473)
> at android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:382)
> at android.view.WindowManagerImpl.removeViewImmediate (WindowManagerImpl.java:128)
> at android.app.Dialog.dismissDialog (Dialog.java:610)
> at android.app.Dialog.dismiss (Dialog.java:593)
> at org.apache.cordova.inappbrowser.InAppBrowser$5$1.onPageFinished (InAppBrowser.java:434)
> at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished (WebViewContentsClientAdapter.java:196)
> at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage (AwContentsClientCallbackHelper.java:65)
> at android.os.Handler.dispatchMessage (Handler.java:102)
> at android.os.Looper.loop (Looper.java:154)
> at android.app.ActivityThread.main (ActivityThread.java:6682)
> at java.lang.reflect.Method.invoke (Native Method)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)
> at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410){color}
> I already searched such crash and I couldn't find any report of this for cordova or inappbrowser. The problem seems to be occuring [here|https://github.com/apache/cordova-plugin-inappbrowser/blob/master/src/android/InAppBrowser.java#L434] that's because on samsung device it's needed to verify if dialog.isShowing() as stated from a StackOverflow [answer|https://stackoverflow.com/a/19511069/6723787]. That being said I think the bug can be easily solved by changing one line. I also want to mention that app only crashes if user has enabled "Don't keep activities" on Settings->Developer Options.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org