[英]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 : 解决方案是:
XWalkView
from XWalkActivity
XWalkActivity
扩展包含XWalkView
的活动 XWalkActivity
's onXWalkReady()
methods, and do necessary initialization stuff to the XWalkView
there XWalkActivity
的onXWalkReady()
方法,并在那里对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.