Hi there, since roughly a week, the Vélib application is not working properly on /e/OS
I don’t think it was related to an update of /e/OS itself and since I have automatic updates, I’m not sure whether it followed an update of the app itself…
The app starts and displays its interface but its main feature is a map (using mapbox) showing the stations, number of bikes and places, and this does not work in the sense that the map background flashes in and out of existence all the time and none of the stations are displayed.
Could anyone confirm whether they also see this behavior on /e/OS or not?
Pointers to potential source of the issue and solutions are obviously welcome too.
Also, somewhat related: how do I post this on the French section of the forum? For some reason I don’t seem to have access rights…
This is a Search for logcatlogcat is the process to collect a log for such events but many of the threads found may give insight on similar problems with other apps.
First step when apps do something like this turn off all Advanced privacy and restart. You might also clear the app cache.
Tested, the app finds (reported available) bikes and renders map ok from UK. Tested on a15. Will your device allow upgrade from Android 12 (S), a no longer supported Android version ?
This is a Search for logcatlogcat is the process to collect a log for such events but many of the threads found may give insight on similar problems with other apps.
OK, I’ll have a look at logcat!
First step when apps do something like this turn off all Advanced privacy and restart. You might also clear the app cache.
Fair, though I’m not super fond of the idea… I already tried just remove cache, then all data, then uninstalling and reinstalling the app without removing advanced privacy features but that was not sufficient.
Tested, the app finds (reported available) bikes and renders map ok from UK. Tested on a15.
Ah, thank you for that!
This was with advanced privacy features on?
Will your device allow upgrade from Android 12 (S), a no longer supported Android version ?
Yes, as far as I know, /e/OS should be upgraded to A13 for Teracube soon ™
I guess the suggestion was about “test with AP off” then you learn which part of AP might be an issue. Once identified you can decide or ask what action one might take.
It is hard for a location based app to work with false location!
08-09 14:26:44.368 1158 2475 I ActivityTaskManager: START u10 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.paris.velib/.MainActivity bnds=[87,852][269,1070]} from uid 10069
08-09 14:26:44.439 31905 32049 D libMEOW : applied 1 plugins for [com.paris.velib]:
08-09 14:26:44.487 31905 31931 D EventGDTLogger: Session Event: { ... }
08-09 14:26:44.944 31905 32048 D libMEOW : applied 1 plugins for [com.paris.velib]:
08-09 14:26:44.995 31905 31905 D libMEOW : applied 1 plugins for [com.paris.velib]:
08-09 14:26:44.997 31905 32058 D libMEOW : applied 1 plugins for [com.paris.velib]:
08-09 14:26:45.206 1158 1181 I ActivityTaskManager: Displayed com.paris.velib/.MainActivity: +829ms
08-09 14:26:45.402 1591 1608 V PhoneInterfaceManager: [PhoneIntfMgr] Unknown package: com.paris.velib
08-09 14:26:45.434 4690 21552 D LocationManager: bound by: GetServiceRequest[...]
08-09 14:26:45.458 4690 21552 D LocationManager: getLastLocationWithReceiver by com.paris.velib
08-09 14:26:45.465 4690 21551 D MeasurementService: bound by: GetServiceRequest[MEASUREMENT, packageName="com.paris.velib", gmsVersion=XXXXXX, scopes=[], extras=Bundle[{}], defaultFeatures=[], apiFeatures=[], supportsConnectionInfo=true]
08-09 14:26:45.475 4690 21552 D LocationManager: registerLocationUpdates (callback) by com.paris.velib
08-09 14:26:45.492 4690 4690 D LocationManager: updateBinderRequest ClientIdentity[XXXX,com.paris.velib] Request[@1000ms HIGH_ACCURACY, minUpdateDistance=0.1m, waitForAccurateLocation]
08-09 14:26:45.587 1158 2476 W InputManager-JNI: Input channel object 'f8efc6b Splash Screen com.paris.velib (client)' was disposed without first being removed with the input manager!
08-09 14:26:45.707 4690 21552 D MeasurementService: sendEvent(com.google.android.gms.measurement.internal.EventParcel@b2ef622) for AppMetadata[com.paris.velib]
08-09 14:26:45.713 4690 21552 D MeasurementService: sendCurrentScreen(-3329241279220074822, null, MainActivity, com.paris.velib)
08-09 14:26:49.785 4690 21550 D LocationManager: unregisterLocationUpdates (callback) by com.paris.velib
08-09 14:26:49.832 4690 21552 D MeasurementService: sendEvent(com.google.android.gms.measurement.internal.EventParcel@fb37e70) for AppMetadata[com.paris.velib]
08-09 14:26:49.835 4690 8346 D MeasurementService: sendCurrentScreen(0, null, null, com.paris.velib)
08-09 14:26:49.873 1158 1184 I ActivityManager: Killing 31905:com.paris.velib/u10a165 (adj 905): remove task
08-09 14:26:50.000 1158 1673 I WindowManager: WIN DEATH: Window{4b0253f u10 com.paris.velib/com.paris.velib.MainActivity}
08-09 14:26:50.000 1158 1673 W InputManager-JNI: Input channel object '4b0253f com.paris.velib/com.paris.velib.MainActivity (client)' was disposed without first being removed with the input manager!
from the time the app starts to time I closed it… it does not seem very intersting so I looked at mapbox, which gives:
08-09 14:33:10.838 32223 32265 E CronetProviderInstaller: at com.mapbox.common.module.cronet.LazyEngineKt.findCronetProvider(Unknown Source:33)
08-09 14:33:10.838 32223 32265 E CronetProviderInstaller: at com.mapbox.common.module.cronet.LazyEngine.<init>(Unknown Source:18)
08-09 14:33:10.838 32223 32265 E CronetProviderInstaller: at com.mapbox.common.module.cronet.CronetClientDetail.<init>(Unknown Source:21)
08-09 14:33:10.838 32223 32265 E CronetProviderInstaller: at com.mapbox.common.PlatformHttpService.createPlatformHttpService(Unknown Source:13)
08-09 14:41:29.032 32572 32674 W Mapbox : [maps-core]: {}[Style]: Source 'COMPOSE_SOURCE_ID_geojson_55bc4208-96d2-4aca-acef-0c92cb8fb611' missing for layer 'euroSymbolLayer'
08-09 14:41:29.055 32572 32572 W Mapbox : [maps-core]: Failed to get style property type because layer bike_lane is not in style
08-09 14:41:29.055 32572 32572 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
08-09 14:41:29.055 32572 32572 W Mapbox : [maps-core]: Failed to get style property type because layer cycleway is not in style
08-09 14:41:29.055 32572 32572 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
08-09 14:41:29.234 32572 32572 W Mapbox : [common\HTTP]: HTTP/3 will not be available: Cannot find a valid Cronet provider. In order to
08-09 14:41:29.234 32572 32572 W Mapbox : enable HTTP/3 in the Mapbox SDKs, it's necessary that the application depends on
08-09 14:41:29.234 32572 32572 W Mapbox : a valid Cronet provider. Valid providers include the Google Play Services
08-09 14:41:29.234 32572 32572 W Mapbox : provider (from "com.google.android.gms:play-services-cronet"), in which case
08-09 14:41:29.234 32572 32572 W Mapbox : Cronet will be used from Play Services, or you may choose to embed Cronet with
08-09 14:41:29.234 32572 32572 W Mapbox : your application by depending on "org.chromium.net:cronet-embedded".
08-09 14:41:29.428 32572 32572 W Mapbox : [maps-core]: Failed to get style property type because layer bike_lane is not in style
08-09 14:41:29.431 32572 32572 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
08-09 14:41:29.432 32572 32572 W Mapbox : [maps-core]: Failed to get style property type because layer cycleway is not in style
08-09 14:41:29.432 32572 32572 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
which might be more relevant? Don’t know what to do with it, though…
that “CronetProviderInstaller” with “at com.mapbox.comon..” → that is part of a stacktrace where it’s most useful to see the header line. Can you quote it fully? like this in a recent cronet stacktrace.
Ah right, here are two adjacent stacktraces (I also included a few lines around them):
08-12 09:51:31.928 5464 5510 W com.paris.veli: Unsupported class loader
08-12 09:51:32.132 643 1313 E HWComposer: getSupportedContentTypes: getSupportedContentTypes failed for display 0: Unsupported (8)
08-12 09:51:32.148 5464 5510 W com.paris.veli: Unsupported class loader
08-12 09:51:32.149 5464 5545 E ion : ioctl c0044901 failed with code -1: Invalid argument
08-12 09:51:32.149 1158 2208 E system_server: Invalid class loader spec: =UnsupportedClassLoaderContext=
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: Unable to read Cronet version from the Cronet module
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: java.lang.ClassNotFoundException: Didn't find class "org.chromium.net.impl.ImplVersion" on path: DexPathList[[zip file "/system/priv-app/GmsCore/GmsCore.apk"],nativeLibraryDirectories=[/system/priv-app/GmsCore/lib/arm64, /system/priv-app/GmsCore/GmsCore.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.google.android.gms.net.CronetProviderInstaller.zzc(Unknown Source:68)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.google.android.gms.net.PlayServicesCronetProvider.tryToInstallCronetProvider(Unknown Source:5)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.google.android.gms.net.PlayServicesCronetProvider.isEnabled(Unknown Source:0)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.mapbox.common.module.cronet.LazyEngineKt.findCronetProvider(Unknown Source:33)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.mapbox.common.module.cronet.LazyEngine.<init>(Unknown Source:18)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.mapbox.common.module.cronet.CronetClientDetail.<init>(Unknown Source:21)
08-12 09:51:32.149 5464 5510 E CronetProviderInstaller: at com.mapbox.common.PlatformHttpService.createPlatformHttpService(Unknown Source:13)
08-12 09:51:32.149 1158 2208 E PackageDexUsage: Unsupported context?
08-12 09:51:32.153 5464 5547 W DynamiteModule: IDynamite loader version = 2, no high precision latency measurement.
08-12 09:51:32.153 5464 5547 W DynamiteModule: IDynamite loader version = 2
08-12 09:51:32.156 5464 5547 W com.paris.veli: Unsupported class loader
08-12 09:51:27.391 30960 30960 W : (5)[30960:kworker/u16:9]<I>CTS-Core ESD protection work
08-12 09:51:27.452 0 0 E : (5)[608:allocator@4.0-s][ION][ion_dbg] alloc_pages order=4 cache=0
08-12 09:51:32.332 5464 5567 W Mapbox : [maps-core]: {}[Style]: Source 'COMPOSE_SOURCE_ID_geojson_b62385d6-9da2-4942-8496-ab624e09e3f0' missing for layer 'euroSymbolLayer'
08-12 09:51:32.357 5464 5464 W Mapbox : [maps-core]: Failed to get style property type because layer bike_lane is not in style
08-12 09:51:32.358 5464 5464 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
08-12 09:51:32.358 5464 5464 W Mapbox : [maps-core]: Failed to get style property type because layer cycleway is not in style
08-12 09:51:32.358 5464 5464 E Mapbox : [maps-android\Mbgl-LayerUtils]: Layer type: null unknown.
08-12 09:51:32.361 1158 2477 W ServiceManager: Permission failure: android.permission.HIGH_SAMPLING_RATE_SENSORS from uid=1010165 pid=5464
08-12 09:51:32.382 5464 5547 W com.paris.veli: Unsupported class loader
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: Unable to read Cronet version from the Cronet module
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: java.lang.ClassNotFoundException: Didn't find class "org.chromium.net.impl.ImplVersion" on path: DexPathList[[zip file "/system/priv-app/GmsCore/GmsCore.apk"],nativeLibraryDirectories=[/system/priv-app/GmsCore/lib/arm64, /system/priv-app/GmsCore/GmsCore.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at com.google.android.gms.net.CronetProviderInstaller.zzc(Unknown Source:68)
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at com.google.android.gms.net.zza.run(Unknown Source:4)
08-12 09:51:32.383 5464 5547 E CronetProviderInstaller: at java.lang.Thread.run(Thread.java:920)
08-12 09:51:32.383 1158 2477 E system_server: Invalid class loader spec: =UnsupportedClassLoaderContext=
08-12 09:51:32.383 1158 2477 E PackageDexUsage: Unsupported context?
both slightly different callstack in the beginning, but hitting Unable to read Cronet version from the Cronet module → as in the linked thread. As the first goes through com.mapbox.common classes I assume any following mapbox errors/warnings can be attributed.
What’s cronet?
Cronet is the Chromium network stack made available to Android apps as a library
microG builds cronet (pushed to maven) and it doesn’t seem like /e/OS is shipping something old - so the issue
CronetProviderInstaller: Unable to read Cronet version from the Cronet module
should be filed at its tracker. Maybe the MERGED_CLASSES constant needs to just include that CronetProviderInstaller class?
Lineage tracks cronet as external lib, but unsure if that could satisfy that call.
oversaw you reported for an Android 12 build, sorry for that. For me too the map draws after an initial install (v.3.1 / A15). Either cronet wants to update because of this or the version check is inside newer releases. Could end up at “please update” in the microG issue tracker to manage expectations
no. While there’s infra now to update system apps outside full releases, microg wasn’t ever in the testing conf json to gauge if that’s planned.
But back to that error - in the co-thread for that pool app I myself ran into the same cronet error message on a very current microG and /e/OS, also through a tryToInstallCronetProvider() function call.
But back to that error - in the co-thread for that pool app I myself ran into the same cronet error message on a very current microG and /e/OS, also through a tryToInstallCronetProvider() function call.
Ow, I somehow missed your reply… you mean that you saw the issue with a working app? So it would be unrelated?
BTW: could you update this bug report, with a reproducer on up-to-date microG, then?
So based on all your feedback, should I open an issue on the /e/OS gitlab tracker? It seems like this might be more of an issue for them to fix and investigate rather than for microG?
in my case, they need to upgrade emerald to A13 or at least update microG
in your case, check whether this is indeed a microG issue or whether they are doing something wrong?
for the pool app it is indeed a microG issue to not be able to handle the “CronetProviderInstaller” class (there’s no right or wrong here, just missing coverage). Your case would benefit too if it be able to - but by the velib apps logic you woulnd’t end up there with a more current microG, that’s the difference. Imo your bugrep can stand as-is
FYI, the app just started working again… with 3.1.1 and MicroG 0.3.8, no idea what happened.
The last update was September 11, not sure whether it’s what solved it and I did not notice right away or if it’s unrelated.
Also mentioning that there is a workaround for a similar issue with another app that might help other people: [LIST] Banking Apps on /e/OS - #480 by shulx