我一直在研究一個Ionic應用程序,並已在iOS上成功構建它,並試圖將其構建到Android中,但以前的版本已經構建好當我嘗試運行我的應用程序的發佈版本時,我收到「不幸的是,[我的應用程序名稱]已停止。」在大約半秒的加載屏幕後發送消息。我的環境信息是:Ionic Crosswalk「無法加載由於舊版運行時庫導致的外部擴展」
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
當我跑亞行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)
我已經試過了人行橫道插件的各種版本,移除並重新添加了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" />
人行橫道的信息,我已經試過查找未捕獲的異常錯誤,並且無法加載外部的擴展,由於舊的運行時庫,並沒有發現任何答案。有誰知道什麼可能導致這個錯誤?
在此先感謝
編輯:我想可能有一些問題與人行橫道未正確引用我發現這個在亞行日誌只是我上面張貼的錯誤上述外部庫:
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這個「空」的打印輸出:
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
我的行吟詩人r應用程序通常會在這裏打印出一些東西,我相信這可能是原因。我仍然沒有找到解決方案,我仍在尋找。
編輯2:如果其他人遇到過這種情況的更新。這個問題從來沒有真正解決,但我只是最終忽略了它。在我構建應用程序的整個過程中,我總是測試我的Android設備(LG Optimus E973)上的x86構建,並且它始終運行並運行,我從未嘗試過Arm7,因爲當時我認爲設備只能運行一個或其他。事實證明,由於某種原因,我不確定這是否是我做的代碼更改或者在Crosswalk庫中發生了變化,但x86構建版不再適用於我的Android設備,並且會立即崩潰。我試用了Arm7,它運行得非常好。
您碰巧使用Galaxy Tab3 10.1嗎?我們的一些用戶報告了完全相同的問題,並且他們都有確切的設備(成百上千的Android用戶)。 版本:xwalk_core_library:18+。 我目前正在發現,如果回退到我們以前的Crosswalk版本(15)解決了這些用戶的問題。我會告訴你! –
我實際上正在測試LG Optimus E973,並且我發現它只是應用程序的x86版本遇到了我遇到的問題。我發佈了上述發生的更新。我相信我遇到的問題仍然存在,但因爲一些無法解釋的原因x86版本停止正確構建。感謝您的詢問,雖然我很想知道我在此設備上遇到的問題是否與您提及的其他用戶相同,如果通過恢復到v15修復了此問題 – Austin