Re: Issue 547842 in chromium: Android System WebView crashing with "wrong ABI"

1,403 views
Skip to first unread message

chro...@googlecode.com

unread,
Oct 29, 2015, 6:27:01 PM10/29/15
to chromi...@chromium.org
Updates:
Cc: wn...@chromium.org
Labels: Cr-Mobile-WebView wv-te-triaged

Comment #2 on issue 547842 by ppolise...@chromium.org: Android System
WebView crashing with "wrong ABI"
https://code.google.com/p/chromium/issues/detail?id=547842

(No comment was entered for this change.)

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

chro...@googlecode.com

unread,
Oct 29, 2015, 6:34:02 PM10/29/15
to chromi...@chromium.org
Updates:
Cc: to...@chromium.org

Comment #3 on issue 547842 by bo...@chromium.org: Android System WebView
I imagine torne might be super interested in this

chro...@googlecode.com

unread,
Oct 29, 2015, 6:35:01 PM10/29/15
to chromi...@chromium.org

Comment #4 on issue 547842 by bo...@chromium.org: Android System WebView
Do you have a full bugreport from the device?

chro...@googlecode.com

unread,
Oct 29, 2015, 7:06:03 PM10/29/15
to chromi...@chromium.org

Comment #5 on issue 547842 by kmans...@gmail.com: Android System WebView
Nope.

I received this as a bug report from a user, he sent my app's own
postmortem crash log.

Can attach or send it to you, but it just this crash over and over again.

Happened from October 19 to October 24, he user wrote he could not open any
message at all (my app is for email, and uses WebView for email message
content).

On October 24, he contacted me, I suggested uninstalling updates to Android
System WebView, and it stopped the crashes immediately.

However --

I recently ran into what may be a related issue with my own native code.

Please see this:

https://groups.google.com/d/msg/android-ndk/4nnvINgEKNM/NrXI9pY1BgAJ

Different device, different user, and yet also an ABI mismatch.

chro...@googlecode.com

unread,
Oct 29, 2015, 7:52:15 PM10/29/15
to chromi...@chromium.org

Comment #8 on issue 547842 by bo...@chromium.org: Android System WebView
> *** Re: And play store should not be sending 64bit apps to 32bit

> By "apps" do you mean WebView, or my app?

> My app doesn't have a "libs" folder, so it runs in whatever the device's
> native mode is.

Your app. Oh I didn't read through your link and just assumed you had
different apks for different ABIs. So nevermind about that comment.

> The "bitness" of WebView .so is not something my app controls -- I just
> have a WebView inside a layout.xml, that's it.

Yeah it depends on the process. On 32bit OS, webview has the 32bit binary,
simple.
On 64bit OS, webview apk contains both the 32bit and 64bit binary, because
64bit os supports both 32 and 64bit processes, and the we would load the
right binary based on the current process.

> *** Re: Don't think apps are impacted though

> How do you figure?

Well, apps that uses the libs directory, because they generally only need
to bundle one binary. You are trying to doing something more advanced

chro...@googlecode.com

unread,
Oct 30, 2015, 5:59:36 AM10/30/15
to chromi...@chromium.org

Comment #9 on issue 547842 by kmans...@gmail.com: Android System WebView
Re: #8

So now that we agree that:

1) my app does not have a libs folder and therefore runs at the
default "bitness"

and

2) the device is 64-bit, the process is 64-bit, and dlopen in WebView needs
a 64-bit .so, but finds a 32-bit one that can't be loaded

... do we also agree that this should not be happening and is an Android /
WebView / Play / manufacturer (?) bug -- not mine?

chro...@googlecode.com

unread,
Oct 30, 2015, 8:22:18 AM10/30/15
to chromi...@chromium.org
Updates:
Status: WontFix
Owner: to...@chromium.org
Cc: -wn...@chromium.org -to...@chromium.org

Comment #10 on issue 547842 by to...@chromium.org: Android System WebView
What's happening here:

The device has a 64-bit CPU but originally shipped with 32-bit Android 4.4
installed.
Sometime recently (in the last few months) it got an update to a 64-bit
version of Android 5.x. Somehow the 32-bit version of WebView is installed
on these devices, either because the user manually installed it when they
were still running 4.4 (which doesn't actually do anything), or because the
Play Store picked the wrong version from the store when updating apps after
the platform update.

Probably after some more update cycles the Play Store will install the
correct 64-bit version and everything will be fine again (not certain about
this yet, still testing), but we're still trying to figure out exactly how
this happened and whether it's actually a Play Store bug or whether this is
just an unfortunate combination of circumstances (webview update installed
before the OTA that changed the ABI) which doesn't break other apps, but
does break webview because of its special nature as a system library :/

We're investigating this with the Play Store team, but unfortunately
there's nothing WebView can do to fix this on our end. The Play Store
should update to the correct version eventually, and users should be able
to resolve it immediately by uninstalling the WebView update (in the apps
list in system settings) and then manually updating it again in the Play
Store; this seems to cause the correct version to be installed. The same
problem appears to have been occurring for Google Play Services on these
devices that have been through the 32->64 bit upgrade path.

Sorry I can't give a better answer. I'm going to close this since we can't
directly do anything about it in webview :/

chro...@googlecode.com

unread,
Nov 3, 2015, 10:47:14 AM11/3/15
to chromi...@chromium.org

Comment #13 on issue 547842 by to...@chromium.org: Android System WebView
The bug is closed wontfix because I am working on this internally with the
play store team, on our internal bug tracker. You shouldn't be sad about
this :)

WontFix is the status used to close issues that aren't chromium problems;
we don't have a special status for "this will be fixed by something else".

chro...@googlecode.com

unread,
Nov 25, 2015, 8:11:41 AM11/25/15
to chromi...@chromium.org
Updates:
Cc: paulmil...@chromium.org

Comment #15 on issue 547842 by to...@chromium.org: Android System WebView
Issue 559720 has been merged into this issue.

chro...@googlecode.com

unread,
Dec 26, 2015, 4:09:06 PM12/26/15
to chromi...@chromium.org

Comment #16 on issue 547842 by kmans...@gmail.com: Android System WebView
Any news on this?

I keep getting fresh crash reports in my Play console:

Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
... 25 more
Caused by: android.util.AndroidRuntimeException:
java.lang.RuntimeException: Cannot load WebView
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:117)
at android.webkit.WebView.getFactory(WebView.java:2185)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2180)
at android.webkit.WebView.setOverScrollMode(WebView.java:2239)
at android.view.View.<init>(View.java:3600)
at android.view.View.<init>(View.java:3694)
at android.view.ViewGroup.<init>(ViewGroup.java:491)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:538)
at android.webkit.WebView.<init>(WebView.java:483)
at android.webkit.WebView.<init>(WebView.java:466)
at android.webkit.WebView.<init>(WebView.java:453)
... 28 more
Caused by: java.lang.RuntimeException: Cannot load WebView
at
org.chromium.android_webview.AwBrowserProcess.loadLibrary(AwBrowserProcess.java:39)
at
com.android.webview.chromium.WebViewChromiumFactoryProvider.initialize(WebViewChromiumFactoryProvider.java:131)
at
com.android.webview.chromium.WebViewChromiumFactoryProvider.<init>(WebViewChromiumFactoryProvider.java:100)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1572)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:112)
... 39 more
Caused by: org.chromium.base.library_loader.ProcessInitException
at
org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:264)
at
org.chromium.base.library_loader.LibraryLoader.loadNow(LibraryLoader.java:148)
at
org.chromium.android_webview.AwBrowserProcess.loadLibrary(AwBrowserProcess.java:33)
... 44 more
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:371)
at java.lang.System.loadLibrary(System.java:989)
at
org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:250)

chro...@googlecode.com

unread,
Jan 4, 2016, 6:05:50 AM1/4/16
to chromi...@chromium.org

Comment #17 on issue 547842 by to...@chromium.org: Android System WebView
This is confirmed as a Play Store issue and will be fixed in the next Play
Store release. However, even after the store is updated, the problem will
only resolve itself on users' devices once the device has actually updated
WebView to the correct version, which may take some time if the user has
automatic updates disabled or isn't on wifi often.

If you have users you are communicating with about this, they can fix their
device immediately by uninstalling the webview update in the system
settings, then going into the Play Store and updating WebView manually,
which will install the correct version (and will use the correct version
for all future updates as well).

chro...@googlecode.com

unread,
Jan 4, 2016, 11:15:07 AM1/4/16
to chromi...@chromium.org

Comment #18 on issue 547842 by kmans...@gmail.com: Android System WebView
That's great news, thank you!
Reply all
Reply to author
Forward
0 new messages