Status Update
Comments
sg...@google.com <sg...@google.com> #2
Can you also give details on how you got this to happen and how often it happens? Do you have a sample project that causes this to occur?
za...@gmail.com <za...@gmail.com> #3
The Exception it's throwing is an IllegalArgumentException in android.net.ConnectivityManager in unregisterNetworkCallback (Invalid NetworkCallback)
This is happening in our production app (after we introduced workmanager) and it's been happening for some time now.
It's happening only in Nvidia Shield Tablet and Nvidia Shield Tablet K1. We have around 200 crashes per day.
ih...@gmail.com <ih...@gmail.com> #4
l....@gmail.com <l....@gmail.com> #6
sg...@google.com <sg...@google.com> #7
Our code is not in play here, it could be happening when some scheduled job is about to run
e....@gmail.com <e....@gmail.com> #8
Branch: androidx-master-dev
commit 56776a6d2eddef14d8275828f665df1177d52ac6
Author: Sumir Kataria <sumir@google.com>
Date: Thu Nov 15 14:53:31 2018
Speculative fix for IAE on NVIDIA Shield tablets.
We can't reproduce this on other devices, but Shield Tablets on
API 24 can return an IllegalArgumentException for some reason.
Since this isn't something that is fatal to WorkManager, we
will catch the exception and move on safely.
Bug: 119484416
Test: Ran existing tests.
Change-Id: If42c1c9257ebf7d36ddab11a3f24401ead731636
M work/workmanager/src/main/java/androidx/work/impl/constraints/trackers/NetworkStateTracker.java
sg...@google.com <sg...@google.com> #9
If an app is built using desugared library and minSdk
below 26 then java.time
will be desugared (to j$.time
for which the implementation will be included in the app), and the desugared code will be used independent of the the API level of the device the app is running on. There is no runtime checking of whether java.time
is present. If the app is built using desugared library and a minSdk
of 26 or above then java.time
will not be desugared and all java.time
code will use the runtime java.time
implementation.
As explained in minSdk
of 25 or below to enable library desugaring of java.time
.
It is true that when java.time
was introduces in Android 8 (API level 26) updating TZDB required a system image update, whereas from Android 8.1 updating TZDB became possible without a system image update.
Description
Add a
ZoneRulesProvider
to the desugared library that can read atzdb.dat
resource as an Android asset and not just a Java resource. Could also be that this should be a separate small support library and not bundled with the desugared library itself.This should include a way to load the data in the background and making it easier to control when the loading happens.
The current
TzdbZoneRulesProvider
which is in the desugared library can only read thetzdb.dat
data from a Java resource and the reading happens whenever the classZoneRulesProvider
is loaded.This came up during the internal discussion on documenting how to use the
TzdbZoneRulesProvider
and an app providedtzdb.dat
Java resource together with library desugaring.