Crosswalk 崩溃并显示 AssertionFailedError 错误

8
Crashlytics报告了以下问题,这影响了我的应用程序中相当大比例的用户:
致命异常:junit.framework.AssertionFailedError: 在xwalk准备就绪之前不能调用此方法 at junit.framework.Assert.fail(Assert.java:50) at org.xwalk.core.XWalkView.setZOrderOnTop(XWalkView.java:1271) at org.crosswalk.engine.XWalkWebViewEngine.initWebViewSettings(XWalkWebViewEngine.java:193) at org.crosswalk.engine.XWalkWebViewEngine.access$000(XWalkWebViewEngine.java:55) at org.crosswalk.engine.XWalkWebViewEngine$2.run(XWalkWebViewEngine.java:90) at org.xwalk.core.XWalkActivityDelegate.onActivateCompleted(XWalkActivityDelegate.java:179) at org.xwalk.core.XWalkLibraryLoader$ActivateTask.onPostExecute(XWalkLibraryLoader.java:314) at org.xwalk.core.XWalkLibraryLoader$ActivateTask.onPostExecute(XWalkLibraryLoader.java:277) at android.os.AsyncTask.finish(AsyncTask.java:632) at android.os.AsyncTask.access$600(AsyncTask.java:177) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5034) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(NativeStart.java)
我刚刚添加了crosswalk插件,我不认为我显式调用了任何方法(在xwalk准备就绪之前不能调用此方法)。有什么想法吗?谢谢!

1
我遇到了同样的问题,很好奇是否有任何解决方案。 - gion_13
@gion_13 看了一下 XWalk 代码,这个异常是由于在 xwalk 准备好之前调用方法所造成的任何不支持的操作异常而抛出的。您看过这个链接吗 - https://crosswalk-project.org/jira/browse/XWALK-4938 ,其中指定了避免此问题的对策。 - Gandhi
第一次体验这个。正在使用ionic2和fabric.io与xwalk。我没有修改任何本机java代码。欢迎提供关于发布此错误(?)的提示。 - atx
@mjekov,你解决了这个问题吗? - c-an
1个回答

1
我认为你正在XWalkView处于未就绪状态时对其进行操作。
在最新版本的Crosswalk中,库发生了一些更改,当onCreate()被调用时,Crosswalk运行时尚未加载。因此,如果您想要初始化XWalkView或执行某些操作,请等待XWalkActivity.onXWalkReady()被调用。
解决方案是:
- 将包含XWalkView的活动扩展为XWalkActivity - 覆盖XWalkActivity的onXWalkReady()方法,并在那里对XWalkView进行必要的初始化
如已在此处声明:https://crosswalk-project.org/apis/embeddingapidocs_v5/org/xwalk/core/XWalkActivity.html

1
谢谢你的回答,但我不会修改任何Java代码。我只是整合一些Cordova插件,编写JavaScript代码而已。 - gion_13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接