Caused by java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.google.android.webview-1/lib/arm/libwebviewchromium.so" is 32-bit instead of 64-bit
Log信息
Fatal Exception: android.util.AndroidRuntimeException: java.lang.reflect.InvocationTargetException at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:169) at android.webkit.WebView.getFactory(WebView.java:2277) at android.webkit.WebView.ensureProviderCreated(WebView.java:2272) at android.webkit.WebView.setOverScrollMode(WebView.java:2331) at android.view.View.(View.java:3840) at android.view.View.(View.java:3943) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55) at android.webkit.WebView.(WebView.java:597) at android.webkit.WebView.(WebView.java:542) at android.webkit.WebView.(WebView.java:525) at android.webkit.WebView.(WebView.java:512) at android.webkit.WebView.(WebView.java:502) at com.tencent.smtt.sdk.c.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) Caused by java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Constructor.java) at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:163) at android.webkit.WebView.getFactory(WebView.java:2277) at android.webkit.WebView.ensureProviderCreated(WebView.java:2272) at android.webkit.WebView.setOverScrollMode(WebView.java:2331) at android.view.View.(View.java:3840) at android.view.View.(View.java:3943) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55) at android.webkit.WebView.(WebView.java:597) at android.webkit.WebView.(WebView.java:542) at android.webkit.WebView.(WebView.java:525) at android.webkit.WebView.(WebView.java:512) at android.webkit.WebView.(WebView.java:502) at com.tencent.smtt.sdk.c.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) Caused by java.lang.RuntimeException: Cannot load WebView at org.chromium.android_webview.AwBrowserProcess.loadLibrary(AwBrowserProcess.java:40) at com.android.webview.chromium.WebViewChromiumFactoryProvider.initialize(WebViewChromiumFactoryProvider.java:131) at com.android.webview.chromium.WebViewChromiumFactoryProvider.(WebViewChromiumFactoryProvider.java:107) at java.lang.reflect.Constructor.newInstance(Constructor.java) at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:163) at android.webkit.WebView.getFactory(WebView.java:2277) at android.webkit.WebView.ensureProviderCreated(WebView.java:2272) at android.webkit.WebView.setOverScrollMode(WebView.java:2331) at android.view.View.(View.java:3840) at android.view.View.(View.java:3943) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55) at android.webkit.WebView.(WebView.java:597) at android.webkit.WebView.(WebView.java:542) at android.webkit.WebView.(WebView.java:525) at android.webkit.WebView.(WebView.java:512) at android.webkit.WebView.(WebView.java:502) at com.tencent.smtt.sdk.c.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) Caused by org.chromium.base.library_loader.ProcessInitException at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:271) at org.chromium.base.library_loader.LibraryLoader.loadNow(LibraryLoader.java:148) at org.chromium.android_webview.AwBrowserProcess.loadLibrary(AwBrowserProcess.java:34) at com.android.webview.chromium.WebViewChromiumFactoryProvider.initialize(WebViewChromiumFactoryProvider.java:131) at com.android.webview.chromium.WebViewChromiumFactoryProvider.(WebViewChromiumFactoryProvider.java:107) at java.lang.reflect.Constructor.newInstance(Constructor.java) at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:163) at android.webkit.WebView.getFactory(WebView.java:2277) at android.webkit.WebView.ensureProviderCreated(WebView.java:2272) at android.webkit.WebView.setOverScrollMode(WebView.java:2331) at android.view.View.(View.java:3840) at android.view.View.(View.java:3943) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55) at android.webkit.WebView.(WebView.java:597) at android.webkit.WebView.(WebView.java:542) at android.webkit.WebView.(WebView.java:525) at android.webkit.WebView.(WebView.java:512) at android.webkit.WebView.(WebView.java:502) at com.tencent.smtt.sdk.c.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) Caused by java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.google.android.webview-1/lib/arm/libwebviewchromium.so" is 32-bit instead of 64-bit at java.lang.Runtime.loadLibrary(Runtime.java:384) at java.lang.System.loadLibrary(System.java:1086) at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:257) at org.chromium.base.library_loader.LibraryLoader.loadNow(LibraryLoader.java:148) at org.chromium.android_webview.AwBrowserProcess.loadLibrary(AwBrowserProcess.java:34) at com.android.webview.chromium.WebViewChromiumFactoryProvider.initialize(WebViewChromiumFactoryProvider.java:131) at com.android.webview.chromium.WebViewChromiumFactoryProvider.(WebViewChromiumFactoryProvider.java:107) at java.lang.reflect.Constructor.newInstance(Constructor.java) at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:163) at android.webkit.WebView.getFactory(WebView.java:2277) at android.webkit.WebView.ensureProviderCreated(WebView.java:2272) at android.webkit.WebView.setOverScrollMode(WebView.java:2331) at android.view.View.(View.java:3840) at android.view.View.(View.java:3943) at android.view.ViewGroup.(ViewGroup.java:573) at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55) at android.webkit.WebView.(WebView.java:597) at android.webkit.WebView.(WebView.java:542) at android.webkit.WebView.(WebView.java:525) at android.webkit.WebView.(WebView.java:512) at android.webkit.WebView.(WebView.java:502) at com.tencent.smtt.sdk.c.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682)
bug出现的情况:
触发场景:在应用汇更新安装了最新版的Android System Webview;
触发系统:CPU为arm64。
应用汇在9月7号发布了新版的Android System Webview,这是为什么从9月7号开始不断的收到崩溃信息的原因。其实google play上9月5号也发布了新版,但是更新google play上的版本不会出现问题,估计是应用汇上的版本对arm64没有做适配导致的。
解决方法
办法1:让用户在设置里面把Android System Webview卸载更新 办法2:让你的应用做适配添加这个 ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "mips"} 已试过,完美解决。如此一来打包的时候只打包了32位的.so文件,打包出来的apk也小了一些。只是性能方面不知道影响会怎样。在此贴一篇介绍so的文章,供参考 http://www.jianshu.com/p/cb05698a1968