[ 
https://issues.apache.org/jira/browse/CB-11326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15320718#comment-15320718
 ] 

ASF GitHub Bot commented on CB-11326:
-------------------------------------

GitHub user vladimir-kotikov opened a pull request:

    https://github.com/apache/cordova-plugin-splashscreen/pull/104

    CB-11326 Prevent crash when initializing plugin after navigating to another 
URL

    <!--
    Please make sure the checklist boxes are all checked before submitting the 
PR. The checklist
    is intended as a quick reference, for complete details please see our 
Contributor Guidelines:
    
    http://cordova.apache.org/contribute/contribute_guidelines.html
    
    Thanks!
    -->
    
    ### Platforms affected
    - Android
    
    ### What does this PR do?
    Fixes app hang (due to internal crash) after calling 
`navigator.app.loadUrl(myurl)`
    
    ### What testing has been done on this change?
    Manual testing
    
    ### Checklist
    - [x] [ICLA](http://www.apache.org/licenses/icla.txt) has been signed and 
submitted to [email protected].
    - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
    - [x] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
    - [ ] Added automated test coverage as appropriate for this change.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/vladimir-kotikov/cordova-plugin-splashscreen 
CB-11326

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-plugin-splashscreen/pull/104.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #104
    
----
commit b7ace248116826b8b5858b748b5525ee7cf92b25
Author: Vladimir Kotikov <[email protected]>
Date:   2016-06-08T15:04:03Z

    CB-11326 Prevent crash when initializing plugin after navigating to another 
URL

----


> use navigator.app.loadUrl got uncaught exception with allow-navigation 
> -----------------------------------------------------------------------
>
>                 Key: CB-11326
>                 URL: https://issues.apache.org/jira/browse/CB-11326
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin SplashScreen
>         Environment: Cordova 6.2.0
>            Reporter: zhuisui
>            Assignee: Vladimir Kotikov
>              Labels: triaged
>
> I get this stack when {{navigator.app.loadUrl(myurl)}} with 
> {{<allow-navigation href="myurl" />}}, which occurs after 
> {{pluginManager.shouldAllowNavigation(myurl)}} returns true
> {code}
> Uncaught exception from plugin
>                                                          
> android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original 
> thread that created a view hierarchy can touch its views.
>                                                              at 
> android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6556)
>                                                              at 
> android.view.ViewRootImpl.clearChildFocus(ViewRootImpl.java:3023)
>                                                              at 
> android.view.ViewGroup.clearChildFocus(ViewGroup.java:964)
>                                                              at 
> android.view.ViewGroup.clearChildFocus(ViewGroup.java:964)
>                                                              at 
> android.view.ViewGroup.clearChildFocus(ViewGroup.java:964)
>                                                              at 
> android.view.View.clearFocusInternal(View.java:5602)
>                                                              at 
> android.view.View.clearFocus(View.java:5585)
>                                                              at 
> android.view.ViewGroup.clearFocus(ViewGroup.java:977)
>                                                              at 
> android.view.View.setFlags(View.java:10622)
>                                                              at 
> android.view.View.setVisibility(View.java:7431)
>                                                              at 
> org.apache.cordova.splashscreen.SplashScreen.pluginInitialize(SplashScreen.java:85)
>                                                              at 
> org.apache.cordova.CordovaPlugin.privateInitialize(CordovaPlugin.java:58)
>                                                              at 
> org.apache.cordova.PluginManager.getPlugin(PluginManager.java:172)
>                                                              at 
> org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:98)
>                                                              at 
> org.apache.cordova.PluginManager.init(PluginManager.java:87)
>                                                              at 
> org.apache.cordova.CordovaWebViewImpl.loadUrlIntoView(CordovaWebViewImpl.java:138)
>                                                              at 
> org.apache.cordova.CordovaWebViewImpl.showWebPage(CordovaWebViewImpl.java:216)
>                                                              at 
> org.apache.cordova.CoreAndroid.loadUrl(CoreAndroid.java:203)
>                                                              at 
> org.apache.cordova.CoreAndroid.execute(CoreAndroid.java:92)
>                                                              at 
> org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98)
>                                                              at 
> org.apache.cordova.PluginManager.exec(PluginManager.java:133)
>                                                              at 
> org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
>                                                              at 
> org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
>                                                              at 
> org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
>                                                              at 
> org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
>                                                              at 
> android.os.Handler.dispatchMessage(Handler.java:102)
>                                                              at 
> android.os.Looper.loop(Looper.java:148)
>                                                              at 
> android.os.HandlerThread.run(HandlerThread.java:61)
> {code}
> Then, app cannot accept any command and doesn't response.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to