离子人行横道"Cannot load external extensions due to old version of runtime library"



我一直在开发Ionic应用程序,并在iOS上成功构建了它,并试图将其构建到android中,以前的版本构建得很好,但现在当我尝试运行应用程序的发布版本时,在加载屏幕约半秒后,我会收到"不幸的是,[我的应用程序名称]已停止。"消息。我的环境信息是:

Cordova CLI: 6.2.0
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.1
Ionic Framework Version: 1.3.0
Ionic CLI Version: 1.7.15
Ionic App Lib Version: 0.7.2
Crosswalk Version: 18+
Android SDK version: 23

当我运行adb-logcat时,我在它崩溃之前收到了以下消息:

E/XWalkExternalExtensionManagerImpl(18395): Cannot load external extensions due to old version of runtime library
D/XWalkLib(18395): Init reserved object: class org.crosswalk.engine.XWalkCordovaResourceClient
D/XWalkLib(18395): Call reserved method: public void org.xwalk.core.internal.XWalkViewBridge.setResourceClientSuper(org.xwalk.core.internal.XWalkResourceClientBridge)
D/XWalkLib(18395): Init reserved object: class org.crosswalk.engine.XWalkCordovaUiClient
D/XWalkLib(18395): Call reserved method: public void org.xwalk.core.internal.XWalkViewBridge.setUIClientSuper(org.xwalk.core.internal.XWalkUIClientBridge)
D/XWalkLib(18395): Call reserved method: class org.xwalk.core.internal.XWalkViewBridge.setXWalkViewInternalVisibilitySuper
W/dalvikvm(18395): threadid=1: thread exiting with uncaught exception (group=0x41836438)
E/AndroidRuntime(18395): FATAL EXCEPTION: main
E/AndroidRuntime(18395): java.lang.UnsupportedOperationException: class org.xwalk.core.internal.XWalkViewBridge.setXWalkViewInternalVisibilitySuper
E/AndroidRuntime(18395):    at org.xwalk.core.ReflectMethod.invoke(ReflectMethod.java:57)
E/AndroidRuntime(18395):    at org.xwalk.core.XWalkCoreWrapper.handlePostInit(XWalkCoreWrapper.java:169)
E/AndroidRuntime(18395):    at org.xwalk.core.XWalkLibraryLoader$ActivateTask.onPostExecute(XWalkLibraryLoader.java:306)
E/AndroidRuntime(18395):    at org.xwalk.core.XWalkLibraryLoader$ActivateTask.onPostExecute(XWalkLibraryLoader.java:277)
E/AndroidRuntime(18395):    at android.os.AsyncTask.finish(AsyncTask.java:631)
E/AndroidRuntime(18395):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
E/AndroidRuntime(18395):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
E/AndroidRuntime(18395):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(18395):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(18395):    at android.app.ActivityThread.main(ActivityThread.java:4905)
E/AndroidRuntime(18395):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(18395):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(18395):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
E/AndroidRuntime(18395):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
E/AndroidRuntime(18395):    at dalvik.system.NativeStart.main(Native Method)

我尝试了各种版本的crosswalk插件,删除并重新添加了android平台,删除了这个版本和上一个版本不同的代码/插件,这个错误不断出现。

这是我在config.xml 中的人行横道信息

<preference name="xwalkVersion" value="xwalk_core_library_beta:18+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
<preference name="xwalkMultipleApk" value="true" />

我已经尝试查找未捕获的异常错误和由于旧的运行库而无法加载外部扩展,但没有找到任何答案。有人知道是什么原因导致了这个错误吗?

提前感谢

编辑:我认为crosswalk没有正确引用外部库可能存在一些问题。我在adb日志中发现了这一点,就在我上面发布的错误上方:

D/XWalkLib(19248): java.lang.UnsatisfiedLinkError: Couldn't load xwalkcore: findLibrary returned null
D/XWalkLib(19248): java.lang.UnsatisfiedLinkError: Cannot load library: load_library[1093]: Library '/data/data/<my-app-id>/app_xwalkcore/libxwalkcore.so' not found

当我构建应用程序时,在JAVA_HOME:下方有一个"null"打印输出

ANDROID_HOME=/Users/<ME>/Documents/android-sdk-macosx
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
null
org.xwalk:xwalk_core_library_beta:18+
:preBuild UP-TO-DATE

我的其他应用程序通常会在这里打印出一些东西,我相信这可能是原因。我仍然没有找到解决方案,仍在寻找。

第2版:如果其他人遇到这种情况,请提供最新情况。这个问题从来没有真正解决过,但我最终忽略了它。在我构建应用程序的整个过程中,我一直在我的安卓设备(LG Optimus E973)上测试x86版本,它总是运行和工作,我从未尝试过Arm7,因为当时我认为一台设备只能运行其中一台。事实证明,出于某种原因,我不确定这是否是我做的代码更改,或者是人行横道库中发生了更改,但x86版本在我的android设备上不再工作,会立即崩溃。我试过Arm7,它运行得非常好。

我试图构建一个基于Crosswalk插件的ionic应用程序。但我无法重现你所面临的问题。这是我的程序

ionic start myApp tabs
cd myApp
ionic platform add android
ionic plugin add cordova-plugin-crosswalk-webview
ionic build android
ionic emulate android

然而,我注意到您正在使用测试版的人行横道进行构建。

<preference name="xwalkVersion" value="xwalk_core_library_beta:18+" />

你能把它换成稳定频道然后再试一次吗?

<preference name="xwalkVersion" value="xwalk_core_library:18+" />

相关内容

最新更新