android - 人行横道因 AssertionFailedError 崩溃

标签 android cordova crosswalk crosswalk-project

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.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 准备好之前不能调用此方法)。有任何想法吗?提前致谢!

最佳答案

我认为您正在对 XWalkView 执行某些操作,而它仍处于未就绪状态。

在最新版本的 Crosswalk 中,调用 onCreate() 时 Crosswalk 运行时尚未加载的库有一些变化。因此,如果您想初始化 XWalkView 或执行某些操作,请等待 XWalkActivity.onXWalkReady() 被调用。

解决方案是:

  • XWalkActivity扩展包含XWalkView的 Activity
  • 覆盖 XWalkActivityonXWalkReady() 方法,并对那里的 XWalkView 做必要的初始化工作

如前所述:https://crosswalk-project.org/apis/embeddingapidocs_v5/org/xwalk/core/XWalkActivity.html

关于android - 人行横道因 AssertionFailedError 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38968320/

相关文章:

android - Phonegap 在后台处理推送通知

java - 解析本地数据存储 : I can't access ACL secured objects from the network after force closing the app? (Android)

android - 我在 sdk 管理器中找不到 "Documentation for Android SDK"

xcode - ionic : console. 日志未在带有cordova 4.1.1 的xcode 中显示

android - 我的 meteor 应用程序中的人行横道错误 "XWalkAutofillClient::OnFirstUserGestureObserved()"

Android:如何使用不支持 webGL 的 webview 排除设备,即在 gpu_blacklist 上

java - 有没有办法在Java(Android)中将 boolean 数组打印为(0,1)

cordova - Phonegap Geolocation - 我如何判断我的用户是否靠近地标?

android - Enter 事件不会在使用 Angular 的 Android 设备上触发该功能

api - 使用 Web Audio Api、Ionic 和 Crosswalk 在左/右声道播放振荡器