cordova-crosswalk-engine
cordova-crosswalk-engine copied to clipboard
Crosswalk's APIs are not ready yet
Upon first app open after install, a user gets this error:
Restarting the app fixes it.
Manufacturer: Samsung Model: SM-N920T Board: Universal7420 Android API: 23 Android OS: 6.0.1 Brand: Samsung RAM: 3.58GB
Exception java.lang.RuntimeException: Crosswalk's APIs are not ready yet
org.xwalk.core.XWalkView.onTouchEvent (XWalkView.java:1689)
android.view.View.dispatchTouchEvent (View.java:9998)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2828)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2499)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2839)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2456)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2839)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2456)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2839)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2456)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2839)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2456)
com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent (PhoneWindow.java:2831)
com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1863)
android.app.Activity.dispatchTouchEvent (Activity.java:3046)
com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent (PhoneWindow.java:2792)
com.android.internal.policy.MultiPhoneWindow$MultiPhoneDecorView.dispatchTouchEvent (MultiPhoneWindow.java:371)
android.view.View.dispatchPointerEvent (View.java:10233)
android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:5397)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:5233)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4673)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4726)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4692)
android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4834)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4700)
android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4891)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4673)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4726)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4692)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4700)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4673)
android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:7359)
android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:7237)
android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:7198)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:7469)
android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:185)
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:323)
android.os.Looper.loop (Looper.java:143)
android.app.ActivityThread.main (ActivityThread.java:7229)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
If they're not ready now, they're probably never going to be: https://crosswalk-project.org/blog/crosswalk-final-release.html
I am getting this error too , but it come just randomly. It seems to mean that something is called while crosswalk is not ready. Seems to do with plugins.
https://lists.crosswalk-project.org/pipermail/crosswalk-help/2016-October/002284.html
That crash happen when devices resources are busy and crosswalk is launches .
Any update on this?
Is this relevant to this issue? https://crosswalk-project.org/documentation/shared_mode.html
I fixed it adding this in the MainActivity
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
try
{
return super.dispatchTouchEvent(event);
}
catch(java.lang.RuntimeException e) {
if ( e.getMessage().compareTo("Crosswalk's APIs are not ready yet") == 0 ) {
}
else
{
throw e;
}
}
return false;
}
Any news on this issue?
@roby65 where did you add that snippet? in your own plugin or as a hack in crosswalk?
Thanks in advance
@santi-cognifit Add it to the MainActivity, in the src folder of the Android platform
Thanks @roby65 it works fine
This is still an issue. Any news on the official fix?
Is there any way to automate @roby65 's workaround? Manually adding this doesn't scale well.
@frontyard This project is no longer mantained, so I don't expect an official fix. I would be happy to know a way to automatize the code add too.
Right. Just realized I'm in the wrong project, the other one being cordova-plugin-crosswalk-webview. The issue exists in that one too.