[
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]