简体   繁体   English

人行横道崩溃,出现AssertionFailedError

[英]Crosswalk crashes with AssertionFailedError

Crashlytics reports the following problem, that is affecting a good percentage of the users of my application: Crashlytics报告了以下问题,该问题影响了我的应用程序的很大一部分用户:

Fatal Exception: junit.framework.AssertionFailedError: Cannot call this method before xwalk is ready 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.lo 致命异常:junit.framework.AssertionFailedError:在org.xwalk.core.XWalkView.setZOrderOnTop(XWalkView.java:1271)处的junit.framework.Assert.fail(Assert.java:50)在org.xwalk.core处无法调用此方法。 org.crosswalk.engine.XWalkWebViewEngine.initWebViewSettings(XWalkWebViewEngine.java:193)在org.crosswalk.engine.XWalkWebViewEngine.access $ 000(XWalkWebViewEngine.java:55)在org.crosswalk.engine.XWalkWebViewEngine $ 2.run(XWalkWebViewEngine.java: 90)位于org.xwalk.core.XWalkLibraryLoader $ (XWalkLibraryLoader.java:277)在android.os.AsyncTask.finish(AsyncTask.java:632)在android.os.AsyncTask.access $ 600(AsyncTask.java:177)在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask .java:645),位于android.os.Handler.dispatchMessage(Handler.java:102),位于android.os.Looper.lo op(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) 位于android.app.ActivityThread.main(ActivityThread.java:5034)的op(Looper.java:136)位于java.lang.reflect.Method.invoke(Method的java.lang.reflect.Method.invokeNative(Method.java) .java:515)位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)位于dalvik.system。 NativeStart.main(NativeStart.java)

I just added crosswalk as a plugin and I don't think I call any method explicitly (Cannot call this method before xwalk is ready). 我只是将crosswalk添加为插件,但我认为我没有明确调用任何方法(在xwalk准备就绪之前无法调用此方法)。 Any ideas? 有任何想法吗? Thanks in advance! 提前致谢!

I think you're doing something to the XWalkView while it's still in the not-ready state. 我认为您在XWalkView仍处于未就绪状态时正在对其进行处理。

In the latest version of Crosswalk, there are some changes to the lib that the Crosswalk runtime isn't loaded yet when onCreate() is called. 在最新版本的Crosswalk中,对库的一些更改是在调用onCreate()时尚未加载Crosswalk运行时。 Therefore, if you want to initialize XWalkView or do something, wait until XWalkActivity.onXWalkReady() is called. 因此,如果要初始化XWalkView或执行某些操作,请等待直到XWalkActivity.onXWalkReady()

The solution is : 解决方案是:

  • Extend the activity containing XWalkView from XWalkActivity XWalkActivity扩展包含XWalkView的活动
  • Override XWalkActivity 's onXWalkReady() methods, and do necessary initialization stuff to the XWalkView there 重写XWalkActivityonXWalkReady()方法,并在那里对XWalkView做必要的初始化工作

As already stated here: https://crosswalk-project.org/apis/embeddingapidocs_v5/org/xwalk/core/XWalkActivity.html 如此处所述: https : //crosswalk-project.org/apis/embeddingapidocs_v5/org/xwalk/core/XWalkActivity.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM