Release Chromium Android App Bundle to Play Store

1,145 views
Skip to first unread message

Pradeep H

unread,
Jul 25, 2019, 4:36:51 AM7/25/19
to Chromium-discuss, pa...@chromium.org, chromium...@chromium.org
Hi,

Since android has mentioned to release 64bit build after August 1st 2019. I am planning to upload  android app bundle(.aab) file to Playstore.
But my issue is android app bundle built still contains only single abi(architecture) mentioned in args.gn.
How to Build aab file which includes all architectures with architecture split like (arm, arm64, x86, x64) ?
If chromium does not have option to build aab file with split architecture currently. I need to upload 4 different apks for each architecture.
Also 64 bit apk file exceeds 100MB and play store restricts apk size below 100MB. Can anyone please let me know what is the solution ?

Stuck with this for long time. Can anyone reply as soon as possible.

Thanks In advance,
Pradeep

PhistucK

unread,
Jul 25, 2019, 4:37:55 AM7/25/19
to h.pra...@gmail.com, Chromium-discuss, pa...@chromium.org
chromium-dev might be more helpful.

PhistucK


--
--
Chromium Discussion mailing list: chromium...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-discuss

---
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-discu...@chromium.org.

Pradeep H

unread,
Jul 25, 2019, 5:39:43 AM7/25/19
to Chromium-discuss, h.pra...@gmail.com, pa...@chromium.org, chromi...@chromium.org
Thanks For Reply 

Adding Chromium dev
To unsubscribe from this group and stop receiving emails from it, send an email to chromium...@chromium.org.

Pradeep H

unread,
Jul 29, 2019, 1:35:11 AM7/29/19
to Chromium-dev, h.pra...@gmail.com, chromium...@chromium.org, pa...@chromium.org
Hi Christopher,

Also 64 bit apk file exceeds 100MB and play store restricts apk size below 100MB. Can you please let me know what is the solution ?

On Thursday, 25 July 2019 23:40:15 UTC+8, Christopher Grant wrote:
Hi Pradeep,

There currently isn't a way to build a single bundle that supports all architecture combinations.  The bundles we have today support language splits and feature modules, and we create separate bundles for 64-bit variants.

The problem with adding architecture splits to the bundle targets is in Monochrome, where there are 3 different variants - pure 32-bit, 32-bit browser with 64-bit Webview, and 64-bit browser with 32-bit webview.  That is, some of these variants already include native libs for both architectures.  AFAIK, there's no current way to make a bundle that'll selectively generate multi-arch APKs.  Hence there's still a bundle per architecture variant.

Chris

--
--
Chromium Developers mailing list: chromi...@chromium.org

View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/fc4522a9-d7f5-4c9f-bbd3-fcfa45122ecd%40chromium.org.

Torne (Richard Coles)

unread,
Jul 29, 2019, 12:21:00 PM7/29/19
to h.pra...@gmail.com, Chromium-dev, Chromium-discuss, Egor Pasko
On Mon, 29 Jul 2019 at 01:39, Pradeep H <h.pra...@gmail.com> wrote:
Hi Christopher,

Also 64 bit apk file exceeds 100MB and play store restricts apk size below 100MB. Can you please let me know what is the solution ?

What build target are you building and what are your build options? The regular 64-bit chromium APK should not be >100MB.

Pradeep H

unread,
Jul 29, 2019, 10:14:27 PM7/29/19
to Chromium-dev, h.pra...@gmail.com, chromium...@chromium.org, pa...@chromium.org
Hi Richard,

Here is my args.gn file options for 64 bit build

target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 1
use_unofficial_version_number = false
android_default_version_code = "$versionCode"
android_default_version_name = "$versionName"
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true

and i build using command

ninja -C out/Release chrome_public_apk

And also please look into the snapshot of my 64 bit apk from apk analyzer
Screenshot from 2019-07-30 10-12-24.png

Pradeep H

unread,
Jul 29, 2019, 10:22:07 PM7/29/19
to Chromium-dev, h.pra...@gmail.com, chromium...@chromium.org, pa...@chromium.org, to...@chromium.org

Sorry Richard you were not included in mail chain. Please find my reply below.

Torne (Richard Coles)

unread,
Jul 30, 2019, 12:32:08 PM7/30/19
to h.pra...@gmail.com, Chromium-dev, Chromium-discuss, Egor Pasko
I'm not familiar with apk analyzer, but the numbers it's showing look rather like the compressed and uncompressed sizes. In chrome_public_apk the library is expected to be stored compressed so it should take up much less space. Can you run "zipinfo -ll" on the APK to see the actual contents of the zip central directory?

Pradeep H

unread,
Jul 31, 2019, 2:10:37 AM7/31/19
to Chromium-dev, h.pra...@gmail.com, chromium...@chromium.org, pa...@chromium.org, to...@chromium.org
Hi Richard

In case of 64 bit the native library file is not compressed it is called  crazy.libchrome.so which is around 84.4MB size
In case of 32 bit the native library file is compressed it is called libchrome.so which is around 28.4 MB size
You can check the screenshot for 32bit and 64bit library contents.

In few documents of chromium which i have referred it mentions that native library is not compressed in case of 64bit build. Hence the huge size.
Is there any argument i am missing in args.gn which can compress native library even in 64bit build so that we can reduce the apk size ?
64bit.png
32bit.png

Torne (Richard Coles)

unread,
Jul 31, 2019, 2:16:30 PM7/31/19
to Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
On Wed, 31 Jul 2019 at 02:10, Pradeep H <h.pra...@gmail.com> wrote:
Hi Richard

In case of 64 bit the native library file is not compressed it is called  crazy.libchrome.so which is around 84.4MB size
In case of 32 bit the native library file is compressed it is called libchrome.so which is around 28.4 MB size
You can check the screenshot for 32bit and 64bit library contents.
In few documents of chromium which i have referred it mentions that native library is not compressed in case of 64bit build. Hence the huge size.
Is there any argument i am missing in args.gn which can compress native library even in 64bit build so that we can reduce the apk size ?

Hm, yes - it is supposed to be set up that way according to the source, but in our internal build archive the 64-bit builds of chrome_public still have a compressed .so and I have no idea why that's the case :/
The non-public Chrome builds do have an uncompressed .so though.

You really don't want to compress the native library if you can avoid it - it wastes a lot of space on the device (because it has to be uncompressed during installation and so there ends up being both a compressed and uncompressed copy on disk) and it makes updates larger (due to worse delta compression). I'm not sure if there's an easy way to configure it to do that either.

One thing you could do to reduce the size, however, is to set exclude_unwind_tables=true in your GN args. This will reduce the size of the .so by 10MB or more, and is the configuration we use to ship Chrome. The downside of this is that Android will no longer be able to generate a native stack backtrace when a crash occurs, and the crash output will only contain the top 1 or 2 frames, as the unwind tables are required to generate the rest of the backtrace. For Chrome this isn't a problem because we have our own crash reporting system that doesn't rely on Android's debuggerd output and can decode the crash on the server side, but it may be a problem for you - it depends how you are intending to deal with crashes in your app.

In general, though, our builds are already really close to 100MB in a number of cases and so anybody building chromium for android is at risk of hitting this limit whatever build options they use - we only really care about minimising the *actual* download size (which is significantly smaller due to transport compression) and the *actual* installed size (which has a complex and non-monotonic relationship with APK size), and we don't pay much attention to the APK size itself as a result. You could maybe contact Play to ask if larger APKs can be accepted in future..

Torne (Richard Coles)

unread,
Jul 31, 2019, 2:24:14 PM7/31/19
to Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
I reached out to Play internally to mention that third parties who are building Chromium are approaching/hitting the 100MB limit and to ask if there's a plan to increase it. If I hear anything I'll let you know.

Torne (Richard Coles)

unread,
Jul 31, 2019, 2:30:11 PM7/31/19
to Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
App bundles are allowed to be up to 150MB, for reference: https://android-developers.googleblog.com/2019/03/google-mobile-developer-day-at-game.html
So if you distribute your app as a bundle instead you won't have a problem.

Torne (Richard Coles)

unread,
Jul 31, 2019, 2:37:50 PM7/31/19
to K Moon, Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
On Wed, 31 Jul 2019 at 14:28, K Moon <km...@chromium.org> wrote:
I believe the 100 MB limit applies to the APK size after compression by the Play Store. It's really a limit on download size, not on APK size per se, so the uncompressed size of native libraries isn't relevant.

Had a look and I think there's two different size limits here: when uploading an APK there is a 100MB limit on the actual file size (which apps can "work around" using OBB to store their additional data), and then when the user goes to install/update a particular app, the estimated *download* size is used to decide whether to prompt the user to use wifi.

Torne (Richard Coles)

unread,
Jul 31, 2019, 3:08:46 PM7/31/19
to K Moon, Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
On Wed, 31 Jul 2019 at 15:02, K Moon <km...@chromium.org> wrote:
I've built and uploaded large APKs using uncompressed native libraries in the past, so I'm fairly sure the limit applies to download size, not file size (as commonly thought).

When we originally shipped Monochrome we couldn't release it to Play because it was >100MB, and if it was using the download size then it would have been well under :)
 
Here's the best reference I could dig up, but probably the best test would be to just try it. :-)

https://support.google.com/googleplay/android-developer/answer/113469#apk

"Apps on Google Play have a size limit, which is based on the compressed size of your APK at the time of download.

"After you upload an APK, the Play Console uses gzip to estimate what your app’s download size will be. When users download your app, because of the advanced compression tools used on Google Play, it’s possible that your app’s actual download size will be smaller than the estimate you see on the Play Console."

It may well have changed since then, then, but I took a peek at the code and it did look like it was using the file size.. I don't work on Play so maybe I wasn't looking in the right place.
 

(emphasis mine)

Pradeep H

unread,
Jul 31, 2019, 10:19:05 PM7/31/19
to Chromium-dev, to...@chromium.org, h.pra...@gmail.com, chromium...@chromium.org, pa...@chromium.org, km...@chromium.org

Hi Richard and kMoon,

Thanks for your suggestions. I will try to upload APK and see how it works out.



On Thursday, 1 August 2019 03:14:31 UTC+8, K Moon wrote:
Could definitely be a more recent change (last few years; not sure how old Monochrome was); the Play Store keeps tinkering with how APK delivery works. (For reference, my data point comes from about 3-6 months ago.)

Pradeep H

unread,
Aug 7, 2019, 11:30:32 PM8/7/19
to Chromium-dev, h.pra...@gmail.com, to...@chromium.org, chromium...@chromium.org, pa...@chromium.org, km...@chromium.org

Hi Richard and kmoon

I was able to successfully upload to play store and do internal test. Thanks for your suggestions. Play Store considered APK Download size.

On Friday, 2 August 2019 02:45:58 UTC+8, K Moon wrote:
No problem; let us know how it goes. :-)

K Moon

unread,
Aug 11, 2019, 1:41:07 AM8/11/19
to Pradeep H, Chromium-dev, Torne (Richard Coles), Chromium-discuss, Egor Pasko
Great! Glad to hear this turned out not to be a problem.

K Moon

unread,
Aug 11, 2019, 1:41:08 AM8/11/19
to Torne (Richard Coles), Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
I've built and uploaded large APKs using uncompressed native libraries in the past, so I'm fairly sure the limit applies to download size, not file size (as commonly thought).

Here's the best reference I could dig up, but probably the best test would be to just try it. :-)

https://support.google.com/googleplay/android-developer/answer/113469#apk

"Apps on Google Play have a size limit, which is based on the compressed size of your APK at the time of download.

"After you upload an APK, the Play Console uses gzip to estimate what your app’s download size will be. When users download your app, because of the advanced compression tools used on Google Play, it’s possible that your app’s actual download size will be smaller than the estimate you see on the Play Console."

(emphasis mine)

K Moon

unread,
Aug 11, 2019, 1:41:08 AM8/11/19
to Pradeep H, Chromium-dev, Torne (Richard Coles), Chromium-discuss, Egor Pasko
No problem; let us know how it goes. :-)

K Moon

unread,
Aug 11, 2019, 1:41:08 AM8/11/19
to Torne (Richard Coles), Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
Could definitely be a more recent change (last few years; not sure how old Monochrome was); the Play Store keeps tinkering with how APK delivery works. (For reference, my data point comes from about 3-6 months ago.)

K Moon

unread,
Aug 11, 2019, 1:41:09 AM8/11/19
to to...@chromium.org, Pradeep H, Chromium-dev, Chromium-discuss, Egor Pasko
I believe the 100 MB limit applies to the APK size after compression by the Play Store. It's really a limit on download size, not on APK size per se, so the uncompressed size of native libraries isn't relevant.

Nguyễn Đức Anh

unread,
May 4, 2020, 10:29:03 AM5/4/20
to Chromium-discuss, chromi...@chromium.org, h.pra...@gmail.com, pa...@chromium.org, to...@chromium.org
Can you send for me your project
What is your version chromium you build.
Thank you . I need it

Pradeep H

unread,
Jan 20, 2021, 8:41:13 AM1/20/21
to Chromium-dev, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, Pradeep H, pa...@chromium.org, to...@chromium.org, Chromium-discuss
Hi Pavel,
I was using 69 version build at that time and was able to launch in playstore without any issues. No crashes were noticed. Currently I am also working on 86.0.4240 but have not yet uploaded builds to playstore to verify.
Are you getting crash for any particular device or all 64-bit devices ?



On Wednesday, 20 January 2021 at 19:09:07 UTC+8 pavel.s...@gmail.com wrote:
Hello,

Is the issue solved? Can anyone please post the details? I have the same issue with 64 bit chrome_public_apk based on 86.0.4240 (works well as apk, crashes during distribution from play market ( internal testing). Thanks in advance.

Best regards,
Pavel

понедельник, 4 мая 2020 г. в 10:17:58 UTC+3, ynsu...@gmail.com:

Torne (Richard Coles)

unread,
Jan 20, 2021, 1:26:10 PM1/20/21
to Pradeep H, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, Chromium-discuss
If you're having crashes that isn't related to this thread, which was about packaging and size limits. We would need to see more details about the crashes to help.

Torne (Richard Coles)

unread,
Jan 20, 2021, 2:05:36 PM1/20/21
to Pavel Seleznev, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Does that file actually exist in your APK? What OS versions is it failing on? On all devices, or just some?

On Wed, 20 Jan 2021 at 13:57, Pavel Seleznev <pavel.s...@gmail.com> wrote:
> If you're having crashes that isn't related to this thread, which was about packaging and size limits.
> We would need to see more details about the crashes to help.

My case is simular to packages issue.

I have build 64-bit APK (chrome_public_apk, is_official_build = true) based on 86.0.4240.110
with my changes and this version successfully works on emulator or tester devices

Few days ago I have decided to use PlayMarket for autoupdate feature for my testers and
succesfully uploaded it to market

But after installing via PlayMarket I have got the crash with message
"Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library
/base.apk!/lib/arm64-v8a/crazy.libchrome.so not found"

I have tried to bit arm-v7 version (didn't allowed by PlayMarket policy).

I have tried to build bundle but I didn't see the signing scripts or documention
related to Chromium (not for developers with Android Studio) and I didn't sure that
missing bundle caused the crash

And I am a bit confused of proper way to build third-party Chromium for PlayMarket
and I would appreciate if you point me the right way.

Best Regards,
Pavel

среда, 20 января 2021 г. в 21:26:10 UTC+3, to...@chromium.org:

Torne (Richard Coles)

unread,
Jan 20, 2021, 2:22:04 PM1/20/21
to Pavel Seleznev, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
If it works when you install the APK yourself but not when you install it from the Play Store then I guess something is changing the APK?
To load the native library from the APK it must be stored *uncompressed*; if something is repacking the APK (perhaps signing?) then it might not be keeping the file uncompressed like it's supposed to.

Are you using the "App signing by Google Play" feature: https://support.google.com/googleplay/android-developer/answer/9842756
If you are then that will be resigning your APK after you upload it; maybe it's not keeping the file uncompressed when it does so?

On one of the devices where it's crashing, try pulling the actual installed APK off the device and inspecting it. You can run `adb shell list packages -f your.package.name` to find out where it's installed on disk, and `adb pull /data/app/whatever/base.apk` to get the APK; check the zip to see if the libraries are stored or deflated.

On Wed, 20 Jan 2021 at 14:10, Pavel Seleznev <pavel.s...@gmail.com> wrote:
Just checked, this file exists in APK lib\arm64-v8a\crazy.libchrome.so

It crashes on different cellphones including my test devices- Huaweu Mate 20 lite with Android 10 and Samsuns A51 with Android 10

среда, 20 января 2021 г. в 22:05:36 UTC+3, to...@chromium.org:

Torne (Richard Coles)

unread,
Jan 20, 2021, 3:08:53 PM1/20/21
to Pavel Seleznev, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
On Wed, 20 Jan 2021 at 15:02, Pavel Seleznev <pavel.s...@gmail.com> wrote:
> Are you using the "App signing by Google Play" feature
In Google Play console I see "Play App Signing, Enabled, Google is protecting your app signing key"
but I didn't create upload key according to this instruction
https://developer.android.com/studio/publish/app-signing
So, I am not sure :)

I would assume that means you are using it, but I haven't used the Play developer console in a long time, so I don't know how this works.
 
I have executed commands
1) adb shell pm list packages -f <application>                                                                      
package:/data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk=<application>                                       
                                                                                                                                                                                                                                                 
2) adb pull /data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk        
/data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk: 1 file pulled, 0 skipped. 33.2 MB/s (99392374 bytes in 2.858s)

and got base.apk file (zip archive because 2 first bytes is PK)
The so library is at the same place \lib\arm64-v8a\crazy.libchrome.so
as it in original apk

But is the file stored compressed or uncompressed? It needs to be uncompressed and aligned to a multiple of 4KB to allow it to be loaded from the APK directly. What does `zipinfo base.apk | grep lib` say?
 

среда, 20 января 2021 г. в 22:23:35 UTC+3, to...@chromium.org:

Torne (Richard Coles)

unread,
Jan 20, 2021, 3:25:29 PM1/20/21
to Pavel Seleznev, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Hm, so it's still stored uncompressed. You can check the file alignment somewhat awkwardly with zipalign from the Android SDK; `zipalign -cv 4 base.apk` will print the offset of each file in the output; check if the offset of crazy.libchrome.so is a multiple of 4096?

If that's not it then i'm not sure what else to suggest; check if you actually are getting signed by the Play Store I guess? If you are then it seems likely that it's doing something to the APK that's not happening when you install it locally. Our builds are not signed by Play; they're signed by our release build infrastructure and submitted to the store pre-signed with release keys.

On Wed, 20 Jan 2021 at 15:17, Pavel Seleznev <pavel.s...@gmail.com> wrote:
zipinfo ~/work/base.apk | grep lib
?rwxr-xr-x  2.0 unx 78366344 bx stor 01-Jan-01 00:00 lib/arm64-v8a/crazy.libchrome.so
?rwxr-xr-x  2.0 unx   752520 b- defN 01-Jan-01 00:00 lib/arm64-v8a/libchrome_crashpad_handler.so
?rwxr-xr-x  2.0 unx    46920 b- defN 01-Jan-01 00:00 lib/arm64-v8a/libchromium_android_linker.so


среда, 20 января 2021 г. в 23:10:23 UTC+3, to...@chromium.org:

Torne (Richard Coles)

unread,
Jan 20, 2021, 3:40:22 PM1/20/21
to Pavel Seleznev, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Yeah, that's misaligned and it won't be able to load it.

The Play Store is definitely modifying your APK, and AFAIK the only reason for it doing that is if it's resigning it for you.

If that's happening then I think I know why, and it's an awkward story:

- In chrome_public_apk we use a custom dynamic linker so that we can load our library from the APK on OS versions that are too old to support that natively (Android M+)

- On newer OS versions there is a flag you can set in the manifest to say that you don't want your libraries to be extracted from the APK because they're stored uncompressed and you can load them from there, but on older OS versions this flag is not respected and all libraries are extracted anyway

- We can't set that flag in chrome_public_apk because if we do then the OS won't extract *any* of the libraries, including libchromium_android_linker.so, and we need to be able to load that with the system linker so that we can use it to load the main library.

- So, instead we just rename the library to be crazy.libchrome.so because the OS code to extract libraries only extracts files whose filenames match "lib*.so" and the prefix makes it get ignored.

- The "standard" Android APK signing process knows about the new flag to say you don't want your libraries extracted, and should respect that and ensure the libraries are left uncompressed and aligned, but since we don't have that flag set, that logic is not being triggered, and it's just aligning the files to the "standard" alignment of 4 (or 8?) bytes.

- Our build scripts know about this weird trick and know to do the right thing with alignment, including when we sign our APK.

I suspect the only easy way you will be able to avoid this is to do the release key signing yourself and not rely on Play to do it for you, as that guarantees Play will not modify your APK. They're unlikely to change the behaviour of Play because this is a weird and nonstandard usage.

If you don't intend to support Android L then in theory you could also use the system linker here like we do in monochrome/trichrome, but our build config isn't set up to produce regular chrome_public APKs with that combination of settings.

On Wed, 20 Jan 2021 at 15:31, Pavel Seleznev <pavel.s...@gmail.com> wrote:
zipalign -cv 4 ~/work/base.apk | grep lib
12919268 lib/arm64-v8a/crazy.libchrome.so (OK)
91285685 lib/arm64-v8a/libchrome_crashpad_handler.so (OK - compressed)
91615973 lib/arm64-v8a/libchromium_android_linker.so (OK - compressed)

it doesn't aligned of 4096

Thank you very much for your answers, I plan to check if the app is really signed by the Play store and come back with the results tomorrow


среда, 20 января 2021 г. в 23:26:56 UTC+3, to...@chromium.org:

Pavel Seleznev

unread,
Jan 24, 2021, 3:48:00 PM1/24/21
to Chromium-discuss, to...@chromium.org, Pavel Seleznev, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, Chromium-discuss, h.pra...@gmail.com
> If you're having crashes that isn't related to this thread, which was about packaging and size limits.
> We would need to see more details about the crashes to help.

My case is simular to packages issue.

I have build 64-bit APK (chrome_public_apk, is_official_build = true) based on 86.0.4240.110
with my changes and this version successfully works on emulator or tester devices

Few days ago I have decided to use PlayMarket for autoupdate feature for my testers and
succesfully uploaded it to market

But after installing via PlayMarket I have got the crash with message
"Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library
/base.apk!/lib/arm64-v8a/crazy.libchrome.so not found"

I have tried to bit arm-v7 version (didn't allowed by PlayMarket policy).

I have tried to build bundle but I didn't see the signing scripts or documention
related to Chromium (not for developers with Android Studio) and I didn't sure that
missing bundle caused the crash

And I am a bit confused of proper way to build third-party Chromium for PlayMarket
and I would appreciate if you point me the right way.

Best Regards,
Pavel

среда, 20 января 2021 г. в 21:26:10 UTC+3, to...@chromium.org:
If you're having crashes that isn't related to this thread, which was about packaging and size limits. We would need to see more details about the crashes to help.

Pavel Seleznev

unread,
Jan 24, 2021, 3:48:06 PM1/24/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Pavel Seleznev
Just checked, this file exists in APK lib\arm64-v8a\crazy.libchrome.so

It crashes on different cellphones including my test devices- Huaweu Mate 20 lite with Android 10 and Samsuns A51 with Android 10

среда, 20 января 2021 г. в 22:05:36 UTC+3, to...@chromium.org:
Does that file actually exist in your APK? What OS versions is it failing on? On all devices, or just some?

Pavel Seleznev

unread,
Jan 24, 2021, 3:48:43 PM1/24/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Pavel Seleznev
> Are you using the "App signing by Google Play" feature
In Google Play console I see "Play App Signing, Enabled, Google is protecting your app signing key"
but I didn't create upload key according to this instruction
https://developer.android.com/studio/publish/app-signing
So, I am not sure :)

I have executed commands
1) adb shell pm list packages -f <application>                                                                      
package:/data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk=<application>                                       
                                                                                                                                                                                                                                                 
2) adb pull /data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk        
/data/app/<application>-gBqbgQzHhufd0uOzc24upw==/base.apk: 1 file pulled, 0 skipped. 33.2 MB/s (99392374 bytes in 2.858s)

and got base.apk file (zip archive because 2 first bytes is PK)
The so library is at the same place \lib\arm64-v8a\crazy.libchrome.so
as it in original apk

среда, 20 января 2021 г. в 22:23:35 UTC+3, to...@chromium.org:

Pavel Seleznev

unread,
Jan 24, 2021, 3:48:48 PM1/24/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Pavel Seleznev
zipinfo ~/work/base.apk | grep lib
?rwxr-xr-x  2.0 unx 78366344 bx stor 01-Jan-01 00:00 lib/arm64-v8a/crazy.libchrome.so
?rwxr-xr-x  2.0 unx   752520 b- defN 01-Jan-01 00:00 lib/arm64-v8a/libchrome_crashpad_handler.so
?rwxr-xr-x  2.0 unx    46920 b- defN 01-Jan-01 00:00 lib/arm64-v8a/libchromium_android_linker.so


среда, 20 января 2021 г. в 23:10:23 UTC+3, to...@chromium.org:
On Wed, 20 Jan 2021 at 15:02, Pavel Seleznev <pavel.s...@gmail.com> wrote:

Pavel Seleznev

unread,
Jan 24, 2021, 3:48:52 PM1/24/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Pavel Seleznev
zipalign -cv 4 ~/work/base.apk | grep lib
12919268 lib/arm64-v8a/crazy.libchrome.so (OK)
91285685 lib/arm64-v8a/libchrome_crashpad_handler.so (OK - compressed)
91615973 lib/arm64-v8a/libchromium_android_linker.so (OK - compressed)

it doesn't aligned of 4096

Thank you very much for your answers, I plan to check if the app is really signed by the Play store and come back with the results tomorrow


среда, 20 января 2021 г. в 23:26:56 UTC+3, to...@chromium.org:

Satish Nada

unread,
Apr 14, 2021, 8:40:57 AM4/14/21
to Chromium-discuss, pavel.s...@gmail.com, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com

Hello respected, 
I have generated Android build APK file successfully from android studio but its APK size is large as 600+ MB with both ABI configuration arm64 and arm. I have tried to Splite APK file by ABI configuration in Android Studio and as we get .SO binary files(module wise) we have 333 files of arm in lib directory but still its APK size is large as around 300+ MB. As I have tried to upload build on Google Play Store its not allowed to upload due to large build size.  

Here is the splits configuration in Android Studio. 

splits { 

        // Configures multiple APKs based on ABI. 

        abi { 

            // Enables building multiple APKs per ABI. 

            enable true 

            // By default all ABIs are included, so use reset() and include to specify that we only 

            // want APKs for x86 and x86_64. 

            // Resets the list of ABIs that Gradle should create APKs for to none. 

            reset() 

            // Specifies a list of ABIs that Gradle should create APKs for. 

            include "armeabi", "armeabi-v7a" 

            // Specifies that we do not want to also generate a universal APK that includes all ABIs. 

            universalApk false 

        }     } 

 Here is steps which I have tried to build chromium for Android.  

We have followed steps to get chromium official repository code as below  

Step 1 

Step 2 

Command for Split Chromium Gradle file in Android Studio.  

build/android/gradle/generate_gradle.py \--output-directory out/Default \--project-dir ~/chromiumsource  \--target '//chrome/android:chrome_public_apk' 

After this command we get android gradle with lots of .SO binary files for ABI arm64 but its size is larger. Can we reduce that .so files ? 

Step 4 

After that we not able build this code so we followed Code directory and module structure and take reference to write script to get code based on corresponding directory and classes  

Take reference from below and we did some modifications on this and get latest generated code and native JNI and .SO binary files. 

Step 4 

Setup new Android project and import all module and resources for this project and add add .SO files which is get from chromium code and we generated release build and its working fine on Android Device but its due to large APK size google play console not allow to upload.   

 

Can anyone share solution for this and is there any steps we have missed to build android build apk or is there any solution for reduce Android APK file size. 

Satish Nada

unread,
Apr 14, 2021, 10:34:45 AM4/14/21
to Chromium-discuss, Satish Nada, pavel.s...@gmail.com, to...@chromium.org, Chromium-discuss, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
In Above points i am adding here as we have 300+ cr.so files and set in lib directory in android studio.
as files name are as LIBRARIES = {"c++_chrome.cr","absl.cr","boringssl.cr","chrome_zlib.cr"......etc..

Thank you.

Torne (Richard Coles)

unread,
Apr 14, 2021, 11:17:34 AM4/14/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
It looks like you're building chromium with the default options - you're getting a debug/component build which is much larger than an official release build. For a build you intend to distribute to users you should at minimum be setting `is_official_build=true` to get a proper release build; there are likely other GN args you may wish to consider.

Satish Nada

unread,
Apr 14, 2021, 11:55:04 AM4/14/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada

Thank you very much for reply 
yes now we are trying as below .gn file with different flags.


target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

Can you please review this 
Thank you very much its help us a lots.

Torne (Richard Coles)

unread,
Apr 14, 2021, 12:06:27 PM4/14/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
I don't work on Chrome itself; those flags look reasonable to me, though you should bear in mind that using exclude_unwind_tables=true means that any crashes you experience in native code in the field will be reported via Android's crash reporting mechanism with basically no useful information - no stack unwinding means you only get to see one stack frame and that makes it very hard to determine why it crashed. Including the unwind tables significantly increases the binary size, though.

Satish Nada

unread,
Apr 27, 2021, 1:03:23 PM4/27/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Hello Respected,

As i have completed build successfully in android with below GN configuration and This build is working fine with armeabi-v7a ABI configuration with ARM 32 Android device but whenever i run app with ARM 64 ABI configuration in android Device then its not working and showing as look like offline and as i have attached images for reference.
This build is working fine with armeabi-v7a abi configuration and all feature is working well but as Google play store not allow to upload build without ARM 64 ABI we should required ARM 64 binary SO files with working on ARM 64 devices but something is wrong and we are not able to resolve this issue. 
can any one share solution or any suggestions for resolve this issue or is there any way to upload build without ARM 64 on Google play store?  

target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

Here is my Android studio gradle configuration related to ndk 

ndk {
       abiFilters 'arm64-v8a', 'armeabi-v7a'          
    }
   
and added SO files in 'arm64-v8a' directory under jniLibs directory
as below files name 
jniLibs/arm64-v8a
libchrome.so
libchrome__combined.so
libchrome_crashpad_handler.so
libchrome_pak_allowlist_inputs.so
libchromium_android_linker.so


Here i have attached image for reference of error which i getting with ARM 64 configuration.
Thank you very much in advance.
Screenshot_20210427-222746_Yeti Browser.jpg
Screenshot_20210427-222807_Yeti Browser.jpg

Torne (Richard Coles)

unread,
Apr 27, 2021, 1:12:04 PM4/27/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Are you trying to make a single APK that works for both armeabi and arm64? We don't ship such a configuration for Chrome, so you may have problems. We ship entirely separate APKs for different ABIs.

Regardless, nobody can help based on a screenshot of what it looks like; we'd need to see the logs, and know a lot more about what you're doing (it sounds like you are building this into your own app, not just building chromium, given that you have a gradle ndk config?)

Satish Nada

unread,
Apr 27, 2021, 1:34:34 PM4/27/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada

Thank you very much for quick reply 

We also tried to build separated APK for each ARM but whenever we build for ARM 64 its not working as have tried as below Gradle build 
For ARM 64 
ndk {
abiFilters 'arm64-v8a'
}
and for that we run GN files as separate for each as below 

target_os = "android"
target_cpu = "arm64"

For ARM 32
ndk {
abiFilters 'armeabi-v7a'
}

we run GN files as separate for each as below 

target_os = "android" 
target_cpu = "arm"

can you please review this is there any mistake on above or any suggestion to resolve this issue.
Thank you.

Torne (Richard Coles)

unread,
Apr 27, 2021, 2:05:11 PM4/27/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Then you'll have to attach the logs as I mentioned, and describe more what you are doing; how are you building this, are you building chrome or some app with chromium code in it, or something else, etc.

Satish Nada

unread,
Apr 28, 2021, 3:50:22 AM4/28/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
ok thank you. 

After install app and whenever we try to launch its look like offline as i shared image on previous message
Here is logs can you please review this 
cache/Crash Reports/148fea39-d48c-4add-9a1c-37c2798aae30.dmp15810: open failed: ENOENT (No such file or directory)
        at libcore.io.IoBridge.open(IoBridge.java:496)
        at java.io.FileInputStream.<init>(FileInputStream.java:159)
        at java.io.FileReader.<init>(FileReader.java:72)
        at org.chromium.chrome.browser.crash.MinidumpLogcatPrepender.getBoundary(MinidumpLogcatPrepender.java:54)
        at org.chromium.chrome.browser.crash.MinidumpLogcatPrepender.run(MinidumpLogcatPrepender.java:134)
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.attachLogcatToMinidump(LogcatExtractionRunnable.java:90)
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.uploadMinidumpWithLogcat(LogcatExtractionRunnable.java:65)
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.run(LogcatExtractionRunnable.java:56)
     Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
        at libcore.io.Linux.open(Native Method)
        at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
        at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
        at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8044)
        at libcore.io.IoBridge.open(IoBridge.java:482)
        at java.io.FileInputStream.<init>(FileInputStream.java:159) 
        at java.io.FileReader.<init>(FileReader.java:72) 
        at org.chromium.chrome.browser.crash.MinidumpLogcatPrepender.getBoundary(MinidumpLogcatPrepender.java:54) 
        at org.chromium.chrome.browser.crash.MinidumpLogcatPrepender.run(MinidumpLogcatPrepender.java:134) 
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.attachLogcatToMinidump(LogcatExtractionRunnable.java:90) 
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.uploadMinidumpWithLogcat(LogcatExtractionRunnable.java:65) 
        at org.chromium.chrome.browser.crash.LogcatExtractionRunnable.run(LogcatExtractionRunnable.java:56) 

Thank you very much

Satish Nada

unread,
Apr 29, 2021, 11:28:19 AM4/29/21
to Chromium-dev, Satish Nada, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Hello Respected,

We tried to build separate chromium build APK for android using Android studio for ARM 64 we able run project build but its not working on my Android device (ARM 64 ABI) its give error as i have attached images 

We followed below steps 
https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md

For build apk we user this
autoninja -C out/Default chrome_public_apk

We used below GN files for build project for ABI ARM64 configuration.


target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

The below is Android Gradle Configuration for NDK 

For ARM 64 
ndk {
       abiFilters 'arm64-v8a'
}

and added SO files in 'arm64-v8a' directory under jniLibs directory
as below files name 
jniLibs/arm64-v8a
                    libchrome.so
                    libchrome__combined.so
                    libchrome_crashpad_handler.so
                    libchrome_pak_allowlist_inputs.so
                    libchromium_android_linker.so

Can any one share solution for this or any suggestions to resolve this issue

Thank you very much in advance.

Screenshot_20210427-222807_Yeti Browser.jpg
Screenshot_20210427-222746_Yeti Browser.jpg

Torne (Richard Coles)

unread,
Apr 29, 2021, 1:10:03 PM4/29/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
That stack is some problem while trying to collect data to generate a crash report which I've not seen before - it's not the original issue causing the crash. You'd need to include the *full* logs, ideally from the point the app starts until it crashes.

Satish Nada

unread,
Apr 30, 2021, 7:09:43 AM4/30/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Hello Respected,
I have attached logs files please review this and also attached images for reference 
Here i have attached 2 files as i tried launch app 2 times and we got logs as attached files.

Please review this and let me know if there is any solution or suggestion to resolve this issue.
Thank you very much 

chromium_logs_for_ARM_64_device.txt
Screenshot_20210427-222746_Yeti Browser.jpg
Screenshot_20210427-222807_Yeti Browser.jpg
chromium_logs_for_ARM_64_device_v2.txt

Satish Nada

unread,
Apr 30, 2021, 7:24:17 AM4/30/21
to Chromium-dev, Satish Nada, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Hi 
I would like to add more details on previous message
As we are not getting App crash but whenever we launch app and after some seconds its showing message as i have shared images on previous message and we are trying to build for ARM 64 and we used following GN build flags for this. 


target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

The below is Android Gradle Configuration for NDK 
For ARM 64 
ndk {
       abiFilters 'arm64-v8a'
}

Please review this and let me know if there is any solution or suggestion to resolve this issue.

Torne (Richard Coles)

unread,
Apr 30, 2021, 3:44:11 PM4/30/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
That looks like the renderer processes are consistently crashing. The logs you attached only include the output from the browser process, so it's hard to say why. You'd need to capture the logs from at least one of the renderer processes.

Satish Nada

unread,
May 3, 2021, 9:44:10 AM5/3/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
we are building Chromium in Android Studio so can you please guide us how we can capture logs of the renderer processes.

Thank you. 

Torne (Richard Coles)

unread,
May 3, 2021, 10:22:26 AM5/3/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
I don't really use Android Studio, but if I remember correctly there's a "process" filter in the logcat UI that defaults to only showing the log messages from the process with the same name as your app. The renderer processes will have names like com.yourapp:sandboxed_process0 or similar. Since it looks like they're crashing immediately it might not live long enough to choose it; probably you just need to capture the entire log with no process filtering and see what's in there.

Satish Nada

unread,
May 3, 2021, 12:46:36 PM5/3/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
ok Thank you 
Can please check this attached files and i tried to filter by process as we found as org.chromium.chrome_privileged_process0 logs org.chromium.chrome_privileged_process0.txt in file as  filter logs by process in file process_filter_logs.txt   and also shared full logs in file chromium_logs_v1.txt 

Can you please review this and share your suggestion on this.

Thank you very much in advance. 
chromium_logs_v1.txt
org.chromium.chrome_privileged_process0.txt
process_filter_logs.txt

Torne (Richard Coles)

unread,
May 3, 2021, 12:49:46 PM5/3/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
None of these are a full log; they are all just one process each. None of them are the renderer process; the :privileged_process is something else. If you can't work out how to do the right thing in Android Studio I suggest you use the adb command line tools.

Satish Nada

unread,
May 5, 2021, 12:01:45 PM5/5/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
I have tried to use ADB tools but its same logs as i shared before. ADB is showing logs in logcat and i have shared same as in previous message. 
Can you please help me on this.
Is there any other way to share logs or other details which i can share with you for get more details.

Is there any mistake in below Configuration for Android Build
Can you please review this : 

For build apk we used this
autoninja -C out/Default chrome_public_apk

target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

The below is Android Gradle Configuration for NDK 
For ARM 64 
ndk {
       abiFilters 'arm64-v8a'
}

can we try MonochromePublic.APK instead chrome_public_apk of to resolve this issue ?

Thank you.

Torne (Richard Coles)

unread,
May 5, 2021, 12:11:47 PM5/5/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
On Wed, 5 May 2021 at 12:01, Satish Nada <sati...@simformsolutions.com> wrote:
I have tried to use ADB tools but its same logs as i shared before. ADB is showing logs in logcat and i have shared same as in previous message. 

All of the logs you shared before are filtered to only include one process. if you just run "adb logcat" with no other arguments it will output the full log for everything on the system at once. This will not be the same.
 
Can you please help me on this.
Is there any other way to share logs or other details which i can share with you for get more details.

Is there any mistake in below Configuration for Android Build
Can you please review this : 

For build apk we used this
autoninja -C out/Default chrome_public_apk

target_os = "android"
target_cpu = "arm64"
is_debug = false
android_channel = "stable"
is_official_build = true
is_component_build = false
is_clang = true
symbol_level = 0
blink_symbol_level=0
use_unofficial_version_number = false
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
multidex_in_release = true
exclude_unwind_tables = true

This all looks reasonable.
 

The below is Android Gradle Configuration for NDK 
For ARM 64 
ndk {
       abiFilters 'arm64-v8a'
}

I don't know how Gradle/the NDK is involved here. If you're just building with ninja that's it.
 
can we try MonochromePublic.APK instead chrome_public_apk of to resolve this issue ?

No. Monochrome is a very different build configuration that's intended to be the system WebView implementation as well as a browser. It is not a 64-bit binary in the usual sense; the 64-bit version of Monochrome is still a 32-bit binary, but includes additional 64-bit binaries just for WebView. It's much, much larger as a result which you likely do not want, and it will not satisfy the requirement that you have a 64-bit version of your app. It will just make everything bigger and more complex.

Satish Nada

unread,
May 5, 2021, 12:39:32 PM5/5/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
ok thank you very much for quick reply,
I have tried command in Android Studio Terminal as adb logcat -d > logcat.txt 

I got file logcat file as i have attached here. 
can you please review this.
Thank you very much.

logcat.txt

Torne (Richard Coles)

unread,
May 5, 2021, 2:55:33 PM5/5/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
It looks like something is trying to call Google Play Services APIs from the sandboxed renderer:

05-05 21:58:27.253 21830 21882 E FA      : Exception reading flag from SharedPreferences.
05-05 21:58:27.253 21830 21882 E FA      : java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.UserManager.isUserUnlockingOrUnlocked(int)' on a null object reference
05-05 21:58:27.253 21830 21882 E FA      : at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:485)
05-05 21:58:27.253 21830 21882 E FA      : at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:462)
05-05 21:58:27.253 21830 21882 E FA      : at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:184)
05-05 21:58:27.253 21830 21882 E FA      : at com.google.android.gms.internal.measurement.zzbr.zzO(Unknown Source:58)
05-05 21:58:27.253 21830 21882 E FA      : at com.google.android.gms.internal.measurement.zzak.zza(com.google.android.gms:play-services-measurement-sdk-api@@18.0.2:2)
05-05 21:58:27.253 21830 21882 E FA      : at com.google.android.gms.internal.measurement.zzbg.run(com.google.android.gms:play-services-measurement-sdk-api@@18.0.2:2)
05-05 21:58:27.253 21830 21882 E FA      : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-05 21:58:27.253 21830 21882 E FA      : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-05 21:58:27.253 21830 21882 E FA      : at java.lang.Thread.run(Thread.java:919)

05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: Error retrieving remote feature version:
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: java.lang.SecurityException: Isolated process not allowed to call getContentProvider
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.os.Parcel.createException(Parcel.java:2088)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.os.Parcel.readException(Parcel.java:2056)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.os.Parcel.readException(Parcel.java:2004)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:6031)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.app.ActivityThread.acquireProvider(ActivityThread.java:7342)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2895)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:2124)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.content.ContentResolver.query(ContentResolver.java:935)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.content.ContentResolver.query(ContentResolver.java:887)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.content.ContentResolver.query(ContentResolver.java:843)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at yfl.e(:com.google.android.gms@211515037@21.15.15 (120400-371058782):0)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.chimera.container.DynamiteLoaderImpl.queryForDynamiteModule(:com.google.android.gms@211515037@21.15.15 (120400-371058782):0)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.chimera.container.DynamiteLoaderImpl.queryForDynamiteModuleNoCrashUtils(:com.google.android.gms@211515037@21.15.15 (120400-371058782):3)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at yfn.eb(:com.google.android.gms@211515037@21.15.15 (120400-371058782):11)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at czy.onTransact(:com.google.android.gms@211515037@21.15.15 (120400-371058782):11)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at android.os.Binder.transact(Binder.java:949)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.internal.common.zza.zzB(com.google.android.gms:play-services-basement@@17.6.0:2)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.dynamite.zzo.zzj(com.google.android.gms:play-services-basement@@17.6.0:6)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.dynamite.DynamiteModule.zza(com.google.android.gms:play-services-basement@@17.6.0:29)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.dynamite.zzc.zza(com.google.android.gms:play-services-basement@@17.6.0:1)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.dynamite.zzi.zza(com.google.android.gms:play-services-basement@@17.6.0:3)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.dynamite.DynamiteModule.load(com.google.android.gms:play-services-basement@@17.6.0:5)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.internal.measurement.zzbr.zzc(com.google.android.gms:play-services-measurement-sdk-api@@18.0.2:3)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.internal.measurement.zzak.zza(com.google.android.gms:play-services-measurement-sdk-api@@18.0.2:4)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at com.google.android.gms.internal.measurement.zzbg.run(com.google.android.gms:play-services-measurement-sdk-api@@18.0.2:2)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-05 21:58:27.389 21830 21882 E DynamiteLoaderImpl: at java.lang.Thread.run(Thread.java:919)


and other similar logs from the process IDs of the sandboxed renderer processes.

The renderers aren't allowed to use most Android APIs and definitely cannot call into Play Services. I am guessing that this is some code that you have added to your build rather than something that exists in our code - probably in your Application subclass. You need to be extremely careful what you do in Application because this code will run in *all* processes of Chromium, not just the main app process. Most of the things that are in our Application subclass are guarded by checks for which process they are running in to make sure this kind of thing doesn't happen.

I'm not 100% sure this is the cause of the issues you are having but it's worth investigating.

Satish Nada

unread,
May 6, 2021, 6:26:02 AM5/6/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
I did not changed any code after i fetched from chromium, i have just changed app name only and then build App on Android Studio to make APK file and run on device.

can you please help me on as attached screen shot in this there is some SO files size is different i try to drag and drop APK file in Android Studio one APK file is ChromePublic APK which is working fine and its SO file size is large compare to our Chromium build From Android Studio as android debug APK file is smaller OS files size can you please review attached images for this.
is there anything wrong with SO binary Files.
On our chromium SO file original size is around 86 MB but once we do build APK file and then we drag drop in Android to check file size then its around 42 MB so its look like compressing our SO files.

Please review attached screenshot for reference.

Thank you very much in advance.
chrome public build.png
my android studio build .png

Torne (Richard Coles)

unread,
May 6, 2021, 11:50:20 AM5/6/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
On Thu, 6 May 2021 at 06:26, Satish Nada <sati...@simformsolutions.com> wrote:
I did not changed any code after i fetched from chromium, i have just changed app name only and then build App on Android Studio to make APK file and run on device.

I don't know what you mean exactly by building it in Android Studio, so I don't know what effect this might have. If you're just trying to build a standalone Chromium browser and not incorporate it into another app I would recommend you just build your binaries following our build instructions (i.e. with ninja) and only use Android Studio as an editor, rather than to build anything.
 
can you please help me on as attached screen shot in this there is some SO files size is different i try to drag and drop APK file in Android Studio one APK file is ChromePublic APK which is working fine and its SO file size is large compare to our Chromium build From Android Studio as android debug APK file is smaller OS files size can you please review attached images for this.

I don't really follow what you are comparing here; where is this ChromePublic APK that's working fine from?
 
is there anything wrong with SO binary Files.
On our chromium SO file original size is around 86 MB but once we do build APK file and then we drag drop in Android to check file size then its around 42 MB so its look like compressing our SO files.

I'm not familiar with this UI either; it's not obvious whether it's talking about the size of the file or the compressed size in the APK. If it's compressing the file in the APK then that's not usually desirable; we usually load it directly from the APK to save disk space which can only happen if it's stored uncompressed in the APK. There are other differences in the configuration here though; the copy that has been renamed to crazy.libchrome.so is to be able to load it with the Chromium linker ("crazy linker") which is required for some OS versions to support loading directly from the APK.

Satish Nada

unread,
May 10, 2021, 11:51:12 AM5/10/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Hi 

Can you please check this below logs and attached image as we tried track logs and resolve error but still we are not able to run app on ARM 64 device 

2021-05-10 19:28:16.320 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:231] on connect callback, pid=15451
2021-05-10 19:28:17.792 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:231] on connect callback, pid=15457
2021-05-10 19:28:18.140 12296-15397/com.chromium.chrome D/OpenGLRenderer: mPreviousPosition == bounds[l=0.00 t=79.00 r=1080.00 b=2274.00]
2021-05-10 19:28:18.178 12296-15397/com.chromium.chrome D/OpenGLRenderer: mPreviousPosition == bounds[l=0.00 t=79.00 r=1080.00 b=2274.00]
2021-05-10 19:28:18.370 12296-15398/com.chromium.chrome W/cr_ChildProcessConn: onServiceDisconnected (crash or killed by oom): pid=15451 bindings:W  S state:3 counts:0,0,0,2,
2021-05-10 19:28:18.388 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:274] stopping child connection: pid=15451

Actually we wanted to support ARM 64 bit (arm64-v8a) architecture as its basic requirement to upload Application APK file on Goolge Play Store and currently we are having support for ARM 32 bit (armeabi-v7a) architecture but we are facing issue to support for ARM 64 bit (arm64-v8a) architecture.

So can you please guide us how we can support ARM 64 bit Architecture using Chromium code base.

Thank you very much for your time in advance.
Best Regards,
chromium_logs_arm64.png

Torne (Richard Coles)

unread,
May 10, 2021, 3:59:13 PM5/10/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
On Mon, 10 May 2021 at 11:51, Satish Nada <sati...@simformsolutions.com> wrote:
Hi 

Can you please check this below logs and attached image as we tried track logs and resolve error but still we are not able to run app on ARM 64 device 

2021-05-10 19:28:16.320 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:231] on connect callback, pid=15451
2021-05-10 19:28:17.792 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:231] on connect callback, pid=15457
2021-05-10 19:28:18.140 12296-15397/com.chromium.chrome D/OpenGLRenderer: mPreviousPosition == bounds[l=0.00 t=79.00 r=1080.00 b=2274.00]
2021-05-10 19:28:18.178 12296-15397/com.chromium.chrome D/OpenGLRenderer: mPreviousPosition == bounds[l=0.00 t=79.00 r=1080.00 b=2274.00]
2021-05-10 19:28:18.370 12296-15398/com.chromium.chrome W/cr_ChildProcessConn: onServiceDisconnected (crash or killed by oom): pid=15451 bindings:W  S state:3 counts:0,0,0,2,
2021-05-10 19:28:18.388 12296-15398/com.chromium.chrome D/cr_ChildProcLauncher: [ChildProcessLauncher.java:274] stopping child connection: pid=15451

Sorry - there's still nothing I can figure out from these particular log messages, which are, again, only from one process and not including the actual child process it's talking to. I don't think I can help you debug this issue further; it's not clear what the cause of the problem is and is not an issue I've seen before. Our 64-bit builds work fine.

I still don't understand what you are doing with Android Studio, but if you are just checking out our code, without modifying it, and building chrome_public_apk for target_cpu="arm64" using *our* build tools, and the resulting APK you get from *our* build, without involving android studio, still doesn't work, then you should probably reduce your GN settings to the minimum to see if one of them is causing a problem. They all look reasonable to me, but I'm not sure what else to suggest.

Pradeep H

unread,
May 11, 2021, 4:09:08 AM5/11/21
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, Pradeep H, sati...@simformsolutions.com
Hi All,

I am trying to add okhttp3 library to chromium. I am able to add it using java_prebuilt in Build.gn file. But the problem is okhttp internally has a file called publicsuffixes.gz in its jar location okhttp3/internal/publicsuffix/publicsuffixes.gz which is not loaded into chromium hence app crashes on start.
I tried to add it directly by modifying apkbuilder.py to add that file at location okhttp3/internal/publicsuffix/publicsuffixes.gz  inside my apk with help of android_assets(). It works but it messes the mmap alignment and other assets like resources.pak creates issue and crashes.
Does anyone has any solution how to include this jar .gz resource file inside chromium ?

Satish Nada

unread,
May 25, 2021, 2:00:09 AM5/25/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Hi Thank you very much for reply,
I tried again to setup chromium android build for ARM64 but still we are getting error whenever we launch chromium app.
Below is error logs 

2021-05-25 11:12:14.580 28970-28970/org.chromium.chrome I/ViewRootImpl@fdd1383[FirstRunActivity]: setView = com.android.internal.policy.DecorView@2526ece TM=true
2021-05-25 11:12:14.584 28970-29608/org.chromium.chrome I/cr_LibraryLoader: Successfully loaded native library
2021-05-25 11:12:14.586 28970-29608/org.chromium.chrome I/cr_CachingUmaRecorder: Flushed 16 samples from 16 histograms.
2021-05-25 11:12:14.614 28970-28970/org.chromium.chrome I/SurfaceControl: assignNativeObject: nativeObject = 0 Surface(name=null)/@0xf9e277e / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
2021-05-25 11:12:14.616 28970-28970/org.chromium.chrome I/ViewRootImpl@fdd1383[FirstRunActivity]: Relayout returned: old=(0,0,1080,2400) new=(0,0,1080,2400) req=(1080,2400)0 dur=17 res=0x7 s={true -5476376660481417216} ch=true fn=-1
2021-05-25 11:12:14.642 28970-28970/org.chromium.chrome D/ScrollView: initGoToTop
2021-05-25 11:12:14.725 28970-28970/org.chromium.chrome E/ResourcesCompat: Failed to find font-family tag
2021-05-25 11:12:14.746 28970-28970/org.chromium.chrome D/ScrollView:  onsize change changed 
2021-05-25 11:12:14.750 28970-28970/org.chromium.chrome I/cr_StartSurfaceConfig: Recorded Startup.Android.FirstDrawCompletedTime.NoInstant = 319 ms
2021-05-25 11:12:14.759 28970-29590/org.chromium.chrome E/ion: ioctl c0044901 failed with code -1: Invalid argument
2021-05-25 11:12:14.853 28970-29615/org.chromium.chrome D/cr_ChildProcLH: [ChildProcessLauncherHelperImpl.java:407] Create a new ChildConnectionAllocator with package name = org.chromium.chrome, sandboxed = true
2021-05-25 11:12:14.855 28970-28970/org.chromium.chrome D/cr_BrowserStartup: [BrowserStartupControllerImpl.java:437] Initializing chromium process, singleProcess=false
2021-05-25 11:12:14.865 28970-28970/org.chromium.chrome E/chromium: [ERROR:icu_util.cc(243)] Invalid file descriptor to ICU data received.    
    --------- beginning of crash
2021-05-25 11:12:14.866 28970-28970/org.chromium.chrome A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x70d7ad9018 in tid 28970 (chromium.chrome), pid 28970 (chromium.chrome)

And its development version, can you please review this logs. 
can you help us to get stable version of chromium, is there any command or process to get stable version of chromium.

Thank you very much  

Torne (Richard Coles)

unread,
May 25, 2021, 2:31:14 PM5/25/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Your build is probably missing the asset file icudtl.dat or has it stored compressed in the APK. This file needs to be uncompressed so that it can be mmap()ed directly, like a number of our other assets. The APK produced by our build system should always do the right thing - are you repackaging or resigning the files afterward?

Satish Nada

unread,
May 26, 2021, 2:50:32 AM5/26/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Thank you very much for your reply,

Yes, you are right that icudtl.dat file is missing, I have added in asset and after that now we got other error logs as below 


2021-05-26 12:08:26.972 18035-18807/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:353] Forcing system linker, relocations will not be shared. This negatively impacts memory usage.
2021-05-26 12:08:26.972 18035-18807/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:684] Loading with the System linker.
2021-05-26 12:08:26.972 18035-18807/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:353] Forcing system linker, relocations will not be shared. This negatively impacts memory usage.
2021-05-26 12:08:27.003 18035-18807/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:690] Time to load native libraries: 31 ms
2021-05-26 12:08:27.026 18035-18035/org.chromium.chrome I/DecorView: [INFO] isPopOver=false, config=true
2021-05-26 12:08:27.027 18035-18035/org.chromium.chrome I/DecorView: updateCaptionType >> DecorView@ff0caf7[], isFloating=false, isApplication=true, hasWindowDecorCaption=false, hasWindowControllerCallback=true
2021-05-26 12:08:27.027 18035-18035/org.chromium.chrome D/DecorView: setCaptionType = 0, this = DecorView@ff0caf7[]
2021-05-26 12:08:27.038 18035-18035/org.chromium.chrome W/chromium.chrom: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-05-26 12:08:27.039 18035-18035/org.chromium.chrome W/chromium.chrom: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-05-26 12:08:27.079 18035-18035/org.chromium.chrome D/InputTransport: Input channel constructed: '53870b ', fd=83
2021-05-26 12:08:27.082 18035-18807/org.chromium.chrome I/cr_LibraryLoader: Successfully loaded native library
2021-05-26 12:08:27.084 18035-18807/org.chromium.chrome I/cr_CachingUmaRecorder: Flushed 13 samples from 13 histograms.
2021-05-26 12:08:27.085 18035-18035/org.chromium.chrome I/ViewRootImpl@afce4e8[FirstRunActivity]: setView = com.android.internal.policy.DecorView@ff0caf7 TM=true
2021-05-26 12:08:27.137 18035-18035/org.chromium.chrome I/SurfaceControl: assignNativeObject: nativeObject = 0 Surface(name=null)/@0xfdd1383 / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
2021-05-26 12:08:27.139 18035-18035/org.chromium.chrome I/ViewRootImpl@afce4e8[FirstRunActivity]: Relayout returned: old=(0,0,1080,2400) new=(0,0,1080,2400) req=(1080,2400)0 dur=14 res=0x7 s={true -5476376657671573504} ch=true fn=-1
2021-05-26 12:08:27.171 18035-18035/org.chromium.chrome D/ScrollView: initGoToTop
2021-05-26 12:08:27.277 18035-18035/org.chromium.chrome E/ResourcesCompat: Failed to find font-family tag
2021-05-26 12:08:27.308 18035-18035/org.chromium.chrome D/ScrollView:  onsize change changed 
2021-05-26 12:08:27.312 18035-18035/org.chromium.chrome I/cr_StartSurfaceConfig: Recorded Startup.Android.FirstDrawCompletedTime.NoInstant = 370 ms
2021-05-26 12:08:27.322 18035-18791/org.chromium.chrome E/ion: ioctl c0044901 failed with code -1: Invalid argument
2021-05-26 12:08:27.438 18035-18851/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:353] Forcing system linker, relocations will not be shared. This negatively impacts memory usage.
2021-05-26 12:08:27.438 18035-18851/org.chromium.chrome D/cr_LibraryLoader: [LibraryLoader.java:353] Forcing system linker, relocations will not be shared. This negatively impacts memory usage.
2021-05-26 12:08:27.439 18035-18851/org.chromium.chrome D/cr_ChildProcLH: [ChildProcessLauncherHelperImpl.java:407] Create a new ChildConnectionAllocator with package name = org.chromium.chrome, sandboxed = true
2021-05-26 12:08:27.441 18035-18035/org.chromium.chrome D/cr_BrowserStartup: [BrowserStartupControllerImpl.java:437] Initializing chromium process, singleProcess=false
2021-05-26 12:08:27.488 18035-18035/org.chromium.chrome I/ViewRootImpl@afce4e8[FirstRunActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2021-05-26 12:08:27.490 18035-18035/org.chromium.chrome D/InputMethodManager: prepareNavigationBarInfo() DecorView@ff0caf7[FirstRunActivity]
2021-05-26 12:08:27.490 18035-18035/org.chromium.chrome D/InputMethodManager: getNavigationBarColor() -1
2021-05-26 12:08:27.495 18035-18035/org.chromium.chrome D/InputMethodManager: prepareNavigationBarInfo() DecorView@ff0caf7[FirstRunActivity]
2021-05-26 12:08:27.496 18035-18035/org.chromium.chrome D/InputMethodManager: getNavigationBarColor() -1
2021-05-26 12:08:27.496 18035-18035/org.chromium.chrome V/InputMethodManager: Starting input: tba=org.chromium.chrome ic=null mNaviBarColor -1 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2021-05-26 12:08:27.496 18035-18035/org.chromium.chrome D/InputMethodManager: startInputInner - Id : 0
2021-05-26 12:08:27.497 18035-18035/org.chromium.chrome I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2021-05-26 12:08:27.518 18035-18738/org.chromium.chrome D/InputTransport: Input channel constructed: 'ClientS', fd=98

2021-05-26 12:08:27.695 18035-18035/org.chromium.chrome A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 18035 (chromium.chrome), pid 18035 (chromium.chrome)

Can you please review.

Satish Nada

unread,
May 28, 2021, 5:36:30 AM5/28/21
to Chromium-dev, Satish Nada, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
Hello Respected, 
can you please guide us about the below error logs as we getting.

This is debug version of chromium 

2021-05-28 14:59:06.229 13571-14188/org.chromium.chrome I/cr_LibraryLoader: Successfully loaded native library
2021-05-28 14:59:06.231 13571-14188/org.chromium.chrome I/cr_CachingUmaRecorder: Flushed 20 samples from 19 histograms.
2021-05-28 14:59:06.330 13571-14283/org.chromium.chrome D/cr_ChildProcLH: [ChildProcessLauncherHelperImpl.java:407] Create a new ChildConnectionAllocator with package name = org.chromium.chrome, sandboxed = true
2021-05-28 14:59:06.336 13571-13571/org.chromium.chrome D/cr_BrowserStartup: [BrowserStartupControllerImpl.java:437] Initializing chromium process, singleProcess=false
2021-05-28 14:59:06.348 13571-13571/org.chromium.chrome W/chromium: [WARNING:trace_startup_config.cc(242)] The trace config file does not exist.
2021-05-28 14:59:06.418 13571-13571/org.chromium.chrome W/chromium: [WARNING:resource_bundle_android.cc(183)] locale_file_path.empty() for locale 
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: [FATAL:chrome_resource_bundle_helper.cc(96)] Check failed: !actual_locale.empty(). Locale could not be found for 
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #00 pc 0x00000000001ac02b /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libbase.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #01 pc 0x00000000001c642f /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libbase.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #02 pc 0x00000000001c6a0f /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libbase.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #03 pc 0x0000000002361037 /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libchrome.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #04 pc 0x0000000001604517 /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libchrome.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #05 pc 0x00000000022915fb /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libcontent.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #06 pc 0x00000000022914b7 /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libcontent.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #07 pc 0x000000000228f743 /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libcontent.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #08 pc 0x000000000229057f /data/app/~~KHwE7W6y4fqft2TYrRVVgA==/org.chromium.chrome-tLUvuK40rlAWoykiXd1gQg==/lib/arm64/libcontent.cr.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #09 pc 0x0000000000012ed7 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #10 pc 0x00000000000097eb /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #11 pc 0x000000000007f807 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #12 pc 0x00000000001fa083 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #13 pc 0x00000000001f026b /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #14 pc 0x000000000056889f /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #15 pc 0x0000000000003997 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #16 pc 0x0000000000567627 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #17 pc 0x0000000000003a17 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #18 pc 0x00000000001e7513 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #19 pc 0x00000000001ef883 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #20 pc 0x00000000001f024f /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #21 pc 0x000000000056889f /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #22 pc 0x0000000000003997 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #23 pc 0x0000000000565be3 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #24 pc 0x0000000000003817 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #25 pc 0x0000000000565be3 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #26 pc 0x0000000000003817 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #27 pc 0x0000000000567627 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #28 pc 0x0000000000003a17 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #29 pc 0x0000000000565be3 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #30 pc 0x0000000000003817 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #31 pc 0x0000000000567627 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #32 pc 0x0000000000003a17 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #33 pc 0x0000000000568b43 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #34 pc 0x0000000000003997 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #35 pc 0x0000000000565be3 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #36 pc 0x0000000000003817 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #37 pc 0x00000000001e7513 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #38 pc 0x00000000001ef883 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #39 pc 0x00000000001f0bdf /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #40 pc 0x000000000004e65b /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #41 pc 0x00000000000157db /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #42 pc 0x00000000001e761b /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #43 pc 0x00000000005540cb /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #44 pc 0x0000000000012ffb /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #45 pc 0x00000000000097eb /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #46 pc 0x000000000007f807 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #47 pc 0x000000000043c887 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #48 pc 0x00000000003baff3 /apex/com.android.art/lib64/libart.so
2021-05-28 14:59:06.441 13571-13571/org.chromium.chrome A/chromium: #49 pc 0x00000000000096f7 /apex/com.android.art/javalib/arm64/boot.oat
2021-05-28 14:59:06.849 13571-13571/org.chromium.chrome A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 13571 (chromium.chrome), pid 13571 (chromium.chrome)

can you please share that right path to get all correct assets file from chromium for android build ARM 64.
Here i have attached screenshot which we already added assets files.

Help really appreciated 

Thank you very much in advance.

Screenshot from 2021-05-28 15-04-38.png

Torne (Richard Coles)

unread,
Jun 1, 2021, 3:54:09 PM6/1/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
We only support building using our build system. It looks like you're trying to repackage the files output by our build system yourself. You shouldn't do this; it's liable to change over time and to have many important details that are hard to spot (e.g. the requirement that certain files be stored uncompressed as previously mentioned).

If you can't avoid doing this then you should look at the APK produced by our build system and ensure that your APK contains the same asset/resource files with the same compression settings, rather than asking us to help debug a problem with a process that we have nothing to do with.

Satish Nada

unread,
Sep 8, 2021, 1:54:52 PM9/8/21
to Chromium-dev, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, Satish Nada
Hello, Respected,

Since Google mentioned Starting from August 2021, new apps are required to publish with the Android App Bundle on Google Play.
As Previously we have uploaded a Separate APK file for the ABI arm, arm64 architecture on the Google Play store, and its working fine on All devices but as of now as Google makes it's mandatory to upload Android App Bundle instead of APK file so after uploading the Bundle on Google Play Store with the below configuration in Android Studio and if the user installs the app from Google Play Store it's not working on some device its fail to load library and app getting crash.

splits {
abi {
// Enables building multiple APKs per ABI.
enable true
reset()
include("armeabi-v7a", "arm64-v8a")
universalApk false
}
}

I have also tried the below configuration of bundle buts it's not working 
bundle {
language {
enableSplit = false
}
density {
// This property is set to true by default.
enableSplit = true
}
abi {
// This property is set to true by default.
enableSplit = true
}
}

Can you please review this and share solutions or suggestions for this issue.

Thank you very much in advance.

Torne (Richard Coles)

unread,
Sep 8, 2021, 1:57:06 PM9/8/21
to Satish Nada, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com
On Wed, 8 Sept 2021 at 13:54, Satish Nada <sati...@simformsolutions.com> wrote:
Hello, Respected,

Since Google mentioned Starting from August 2021, new apps are required to publish with the Android App Bundle on Google Play.
As Previously we have uploaded a Separate APK file for the ABI arm, arm64 architecture on the Google Play store, and its working fine on All devices but as of now as Google makes it's mandatory to upload Android App Bundle instead of APK file so after uploading the Bundle on Google Play Store with the below configuration in Android Studio and if the user installs the app from Google Play Store it's not working on some device its fail to load library and app getting crash.

Chrome and WebView are published as bundles, but using a completely separate bundle for each ABI instead of a single bundle that supports all ABIs. I believe this should still be permitted on the Play Store.

We still do not have any build configuration which supports ABI splits and we only support our own build system, so cannot help you build in a different way.

Torne (Richard Coles)

unread,
Sep 22, 2021, 11:04:09 AM9/22/21
to Fine Sage Team, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, h.pra...@gmail.com, sati...@simformsolutions.com
This doesn't seem likely to be related; if you're successfully making a bundle version and releasing it, and it works on a fresh install, then it's probably not related to bundles/signing.
Start a new thread with as much information as possible about the crash you're experiencing; we can't tell you anything without logs and your build config.

On Wed, 22 Sept 2021 at 05:43, Fine Sage Team <te...@finesage.com> wrote:
We're facing a similar issue, but it works for new users and crashes on open only for existing users.     

So if we upload our latest Chromium APK and a new user installs it from the Play Store, it works fine.  If an existing user updates to the new APK, then it always crashes upon open.  

What could be causing this? 

Our keys are managed by Google so we can't sign builds ourselves.  There doesn't seem to be a way to opt out of this.  


Pradeep H

unread,
Feb 9, 2022, 9:38:59 AM2/9/22
to Chromium-discuss, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, Pradeep H, sati...@simformsolutions.com, Fine Sage Team
Hi,

I have been trying to integrate okhttp library into chromium. But it crashes every time on start since its not able to pick publicsuffixes.gz file from okhttp library resource. Is there any way to include this resource to chromium so that okhttp library can pick it up. 

I also tried to add the resource directly from apkbuilder.py script but it causes alignment issue in apk and crashes as its unable to access other resource files.

Please let me know if this can be achieved ?

Thanks in advance,
Pradeep

CoatsDowDdaoj 69

unread,
Jun 6, 2022, 2:54:27 PM6/6/22
to Chromium-discuss, h.pra...@gmail.com, to...@chromium.org, Chromium-discuss, pavel.s...@gmail.com, ynsu...@gmail.com, chromi...@chromium.org, pa...@chromium.org, sati...@simformsolutions.com, Fine Sage Team
I am learning and building chromium for android but I have a problem that the app is not registered when upload to store.
I build with: monochrome_public_bundle

Details in the link below. I look forward to everyone's help.

https://groups.google.com/a/chromium.org/g/chromium-dev/c/ZzuYDzwdTe0/m/smx_JM04FAAJ
Reply all
Reply to author
Forward
0 new messages