Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
I guess technically, the ProGuard rule should be on androidx.work.NonBlockingWorker subclasses, but I'd also be okay with just not using reflection to access the Worker(Context, WorkerParamters) constructor and skipping the need for a ProGuard rule at all.
ap...@google.com <ap...@google.com> #4
The fix will be available in alpha10.
ap...@google.com <ap...@google.com> #5
I tried to use the ProGuard configuration which is linked in comment #3 in my project.
The release build fails and the following warnings are printed:
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.NonBlockingWorker { NonBlockingWorker(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.NonBlockingWorker { void internalInit(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.Worker { Worker(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
The app is opensource if you want to run the release build yourself. Here is the branch (WIP):
https://github.com/EventFahrplan/EventFahrplan/tree/workmanager
Please run: ./gradlew --info --debug aCcc34c3Release
The release build fails and the following warnings are printed:
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.NonBlockingWorker { NonBlockingWorker(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.NonBlockingWorker { void internalInit(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
22:22:06.567 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.work.Worker { Worker(android.content.Context,androidx.work.WorkerParameters); }', but not the descriptor class 'androidx.work.WorkerParameters'
The app is opensource if you want to run the release build yourself. Here is the branch (WIP):
Please run: ./gradlew --info --debug aCcc34c3Release
ap...@google.com <ap...@google.com> #6
Ah, that's because we have a typo in our Proguard file. Change WorkParameters to WorkerParameters.
ap...@google.com <ap...@google.com> #7
Thank you for quick reply. I changed this here:
https://github.com/EventFahrplan/EventFahrplan/commit/7567331dc69a303d5c423850a97bf29005ea7b1c
The release build still fails though. Here is a part of the log output:
23:43:15.760 [ERROR] [system.err] Note: there were 11 duplicate class definitions.
23:43:15.760 [ERROR] [system.err] (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass )
23:43:15.822 [QUIET] [system.out] Initializing...
23:43:15.827 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.impl.background.firebase.FirebaseJobScheduler'
23:43:15.845 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.WorkParameters'
23:43:15.857 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.impl.background.firebase.FirebaseJobScheduler'
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.285 [ERROR] [system.err] Warning: androidx.work.impl.background.systemjob.SystemJobService: can't find referenced method 'android.net.Network getNetwork()' in library class android.app.job.JobParameters
23:43:16.883 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobService
23:43:16.883 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobScheduler
23:43:16.911 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
23:43:16.911 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
23:43:16.912 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk7.JDK7PlatformImplementations
23:43:16.912 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
23:43:16.914 [QUIET] [system.out] Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform$CloseGuard: can't find dynamically referenced class dalvik.system.CloseGuard
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.ConscryptPlatform: can't find dynamically referenced class org.conscrypt.ConscryptEngineSocket
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
The release build still fails though. Here is a part of the log output:
23:43:15.760 [ERROR] [system.err] Note: there were 11 duplicate class definitions.
23:43:15.760 [ERROR] [system.err] (
23:43:15.822 [QUIET] [system.out] Initializing...
23:43:15.827 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.impl.background.firebase.FirebaseJobScheduler'
23:43:15.845 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.WorkParameters'
23:43:15.857 [QUIET] [system.out] Note: the configuration refers to the unknown class 'androidx.work.impl.background.firebase.FirebaseJobScheduler'
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper: can't find referenced class sun.misc.Unsafe
23:43:16.272 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.273 [ERROR] [system.err] Warning: androidx.concurrent.futures.AbstractFuture$UnsafeAtomicHelper$1: can't find referenced class sun.misc.Unsafe
23:43:16.285 [ERROR] [system.err] Warning: androidx.work.impl.background.systemjob.SystemJobService: can't find referenced method 'android.net.Network getNetwork()' in library class android.app.job.JobParameters
23:43:16.883 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobService
23:43:16.883 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobScheduler
23:43:16.911 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
23:43:16.911 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
23:43:16.912 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk7.JDK7PlatformImplementations
23:43:16.912 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
23:43:16.914 [QUIET] [system.out] Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform$CloseGuard: can't find dynamically referenced class dalvik.system.CloseGuard
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.ConscryptPlatform: can't find dynamically referenced class org.conscrypt.ConscryptEngineSocket
23:43:16.944 [QUIET] [system.out] Note: okhttp3.internal.platform.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
cl...@google.com <cl...@google.com>
ap...@google.com <ap...@google.com> #8
I think your compileSdk is too low. WorkManager requires it to be 28 or higher: https://irina-dot-devsite.googleplex.com/topic/libraries/architecture/adding-components
I'm not sure why you are running into the warnings about Unsafe, but you can try using -dontwarn sun.misc.Unsafe in your proguard file to see if it helps. We haven't observed it ourselves.
For what it's worth, one of the notes is referring to WorkParameters still - are you sure it was changed properly?
I'm not sure why you are running into the warnings about Unsafe, but you can try using -dontwarn sun.misc.Unsafe in your proguard file to see if it helps. We haven't observed it ourselves.
For what it's worth, one of the notes is referring to WorkParameters still - are you sure it was changed properly?
ap...@google.com <ap...@google.com> #10
I changed the ProGuard configuration as you can see it in the GitHub repository. It matches with your change here https://android-review.googlesource.com/c/platform/frameworks/support/+/782087/2/work/workmanager/proguard-rules.pro if I don't miss anything. I cannot tell why "WorkParameters" is still listed. I verified the output once again by running ./gradlew clean --info --debug aCcc34c3Release. Feel free to run the build yourself. All you need to do is to create a random release-keystore and the app/gradle.properties from the app/gradle.properties.example.
So you saying when I want to migrate my app to targetSdkVersion 26 until November I need to raise the compileSdkVersion to 28 in order to use WorkManager? Using targetSdkVersion 26 with compileSdkVersion 28 won't work?
So you saying when I want to migrate my app to targetSdkVersion 26 until November I need to raise the compileSdkVersion to 28 in order to use WorkManager? Using targetSdkVersion 26 with compileSdkVersion 28 won't work?
ap...@google.com <ap...@google.com> #11
There shouldn't be any issues with targetSdkVersion 26 and compileSdkVersion 28.
ap...@google.com <ap...@google.com> #12
Okay. I will try that. Thanks.
Feel free to contact me if you are not able to build my project.
Feel free to contact me if you are not able to build my project.
ap...@google.com <ap...@google.com> #13
Does it suffice to raise the compileSdkVersion to 28 or do I also have to raise the version of the support library artifacts at the same time? I tried your suggestion in comment #11 but the build still fails.
ap...@google.com <ap...@google.com> #14
Project: platform/frameworks/support
Branch: androidx-master-dev
commit cee9ab55352f3ad506552afb4753baf8648b4c30
Author: Sumir Kataria <sumir@google.com>
Date: Mon Oct 08 14:20:57 2018
Fix class name in Proguard configuration.
Bug: 116296569
Test: N/A
Change-Id: I3525f9d2f3b06523cbe842b35f97014677879a64
M work/workmanager/proguard-rules.pro
https://android-review.googlesource.com/782087
https://goto.google.com/android-sha1/cee9ab55352f3ad506552afb4753baf8648b4c30
Branch: androidx-master-dev
commit cee9ab55352f3ad506552afb4753baf8648b4c30
Author: Sumir Kataria <sumir@google.com>
Date: Mon Oct 08 14:20:57 2018
Fix class name in Proguard configuration.
Bug: 116296569
Test: N/A
Change-Id: I3525f9d2f3b06523cbe842b35f97014677879a64
M work/workmanager/proguard-rules.pro
ap...@google.com <ap...@google.com> #15
Support library as well.
ap...@google.com <ap...@google.com> #16
Do the latest changes (WorkParameters -> WorkerParameters, NonBlockingWorker -> ListenableWorker) in the ProGuard configuration apply to WorkManager 1.0.0-alpha09 or 1.0.0-alpha10 or both?
ap...@google.com <ap...@google.com> #17
alpha10.
ap...@google.com <ap...@google.com> #19
There isn't one for alpha09... it's already released. You can modify that commit and adapt it to alpha09.
Just change WorkParameters -> WorkerParameters.
Just change WorkParameters -> WorkerParameters.
ap...@google.com <ap...@google.com> #20
Which commit do you refer to? The link I posted show the history of the proguard-rules.pro commits. Since the file exists for a year I would have expected that there was a version of the file which shipped with WorkManager 1.0.0-alpha which was released by September 19, 2018.
Or do you mean that the proguard-rules.pro being shipped with WorkManager 1.0.0-alpha is buggy?
Or do you mean that the proguard-rules.pro being shipped with WorkManager 1.0.0-alpha is buggy?
ap...@google.com <ap...@google.com> #21
Yes, alpha09 had a bug. #19 suggests a modification to your app's proguard config to get around the issue. alpha10 should be out soon with the fix.
ap...@google.com <ap...@google.com> #22
Thank you for the clarification.
I prepared my test branch according to your recommendations (ProGuard, compileSdkVersion, targetSdkVersion, support libraries) as you can see here:
https://github.com/EventFahrplan/EventFahrplan/compare/master...workmanager
The release build however still fails:
00:20:09.182 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobService
00:20:09.182 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobScheduler
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk7.JDK7PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
00:20:09.212 [QUIET] [system.out] Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform$CloseGuard: can't find dynamically referenced class dalvik.system.CloseGuard
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.ConscryptPlatform: can't find dynamically referenced class org.conscrypt.ConscryptEngineSocket
00:20:09.229 [QUIET] [system.out] Note: okhttp3.internal.platform.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
00:20:09.955 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel'
00:20:09.955 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { void write(android.support.v4.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel'
I prepared my test branch according to your recommendations (ProGuard, compileSdkVersion, targetSdkVersion, support libraries) as you can see here:
The release build however still fails:
00:20:09.182 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobService
00:20:09.182 [QUIET] [system.out] Note: androidx.work.impl.Schedulers: can't find dynamically referenced class androidx.work.impl.background.firebase.FirebaseJobScheduler
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk7.JDK7PlatformImplementations
00:20:09.210 [QUIET] [system.out] Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
00:20:09.212 [QUIET] [system.out] Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.AndroidPlatform$CloseGuard: can't find dynamically referenced class dalvik.system.CloseGuard
00:20:09.228 [QUIET] [system.out] Note: okhttp3.internal.platform.ConscryptPlatform: can't find dynamically referenced class org.conscrypt.ConscryptEngineSocket
00:20:09.229 [QUIET] [system.out] Note: okhttp3.internal.platform.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
00:20:09.955 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel'
00:20:09.955 [QUIET] [system.out] Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { void write(android.support.v4.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel'
ap...@google.com <ap...@google.com> #23
These aren't failures (unless your configuration has a problem). As you can see, you have things listed from other libraries like okhttp as well.
ap...@google.com <ap...@google.com> #24
Maybe, I missing the specific part in the output. I pasted a large part of the lower end here: http://pastebin.de/8421/
pa...@gmail.com <pa...@gmail.com> #25
You need to add:
-dontwarn sun.misc.Unsafe
-dontwarn sun.misc.Unsafe
cl...@google.com <cl...@google.com> #26
Thank you. This made the release build succeed.
Can you please explain which library (version) introduces the Unsafe class?
Can you please explain which library (version) introduces the Unsafe class?
pa...@gmail.com <pa...@gmail.com> #27
I am still facing this issue with WorkManager-1.0.0-beta01
2018-12-31 01:40:32.701 2947-2977/de.aurora.mggvertretungsplan.debug E/WM-WorkerFactory: Could not instantiate de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker
java.lang.IllegalAccessException: Class java.lang.Class<androidx.work.WorkerFactory> cannot access method void de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker.<init>(android.content.Context, androidx.work.WorkerParameters) of class java.lang.Class<de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker>
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at androidx.work.WorkerFactory.createWorkerWithDefaultFallback(WorkerFactory.java:92)
at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:191)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:125)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
2018-12-31 01:40:32.701 2947-2977/de.aurora.mggvertretungsplan.debug E/WM-WorkerWrapper: Could not create Worker de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker
My code can be found athttps://github.com/d-Rickyy-b/MGGVertretungsplan .
I'd be very grateful for any kind of support.
2018-12-31 01:40:32.701 2947-2977/de.aurora.mggvertretungsplan.debug E/WM-WorkerFactory: Could not instantiate de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker
java.lang.IllegalAccessException: Class java.lang.Class<androidx.work.WorkerFactory> cannot access method void de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker.<init>(android.content.Context, androidx.work.WorkerParameters) of class java.lang.Class<de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker>
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at androidx.work.WorkerFactory.createWorkerWithDefaultFallback(WorkerFactory.java:92)
at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:191)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:125)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
2018-12-31 01:40:32.701 2947-2977/de.aurora.mggvertretungsplan.debug E/WM-WorkerWrapper: Could not create Worker de.aurora.mggvertretungsplan.services.DownloadTimeTableWorker
My code can be found at
I'd be very grateful for any kind of support.
cl...@google.com <cl...@google.com> #28
Okay... I feel pretty stupid now - it seems that my constructor was package-private and for workmanager to work, it needed to be public. Maybe the exception could point to that issue?
ve...@gmail.com <ve...@gmail.com> #29
That is correct. Worker must have a public constructor unless you instantiate it via your own WorkerFactory.
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #30
Project: platform/frameworks/support
Branch: androidx-main
commit 0c09a4261521a13ec74c8bc3f018aa71bd1aeecc
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 21:23:39 2023
Convert *Info classes passed to Providers to Kotlin
Along with the actual On*Provider interfaces, the
*Info classes that those Providers sent to their
respective Consumers should also be converted to Kotlin.
Relnote: "The `MultiWindowModeChangedInfo` and
`PictureInPictureModeChangedInfo` classes that are sent
to the `Consumer` added to their respective Provider
interfaces are now written in Kotlin."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: Ie08e292c77dc66634a0b474a63df0ac31f34f87e
M core/core/api/current.txt
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/MultiWindowModeChangedInfo.kt
M core/core/src/main/java/androidx/core/app/PictureInPictureModeChangedInfo.kt
https://android-review.googlesource.com/2783740
Branch: androidx-main
commit 0c09a4261521a13ec74c8bc3f018aa71bd1aeecc
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 21:23:39 2023
Convert *Info classes passed to Providers to Kotlin
Along with the actual On*Provider interfaces, the
*Info classes that those Providers sent to their
respective Consumers should also be converted to Kotlin.
Relnote: "The `MultiWindowModeChangedInfo` and
`PictureInPictureModeChangedInfo` classes that are sent
to the `Consumer` added to their respective Provider
interfaces are now written in Kotlin."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: Ie08e292c77dc66634a0b474a63df0ac31f34f87e
M core/core/api/current.txt
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/MultiWindowModeChangedInfo.kt
M core/core/src/main/java/androidx/core/app/PictureInPictureModeChangedInfo.kt
ap...@google.com <ap...@google.com> #31
Project: platform/frameworks/support
Branch: androidx-main
commit cf02af882cbb41d0e39b0068fed7945d19792241
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 21:04:44 2023
Rename *Info classes passed to Provider to .kt
In preparation for their conversion to Kotlin,
the Info classes that are passed to the On*Provider
Consumers should be renamed to .kt.
Test: ./gradlew bOS
BUG: 257291701
Change-Id: Ibc3e77d18ec6e29f39d3632852e100a78674aa04
M core/core/src/main/java/androidx/core/app/MultiWindowModeChangedInfo.kt
M core/core/src/main/java/androidx/core/app/PictureInPictureModeChangedInfo.kt
https://android-review.googlesource.com/2782306
Branch: androidx-main
commit cf02af882cbb41d0e39b0068fed7945d19792241
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 21:04:44 2023
Rename *Info classes passed to Provider to .kt
In preparation for their conversion to Kotlin,
the Info classes that are passed to the On*Provider
Consumers should be renamed to .kt.
Test: ./gradlew bOS
BUG: 257291701
Change-Id: Ibc3e77d18ec6e29f39d3632852e100a78674aa04
M core/core/src/main/java/androidx/core/app/MultiWindowModeChangedInfo.kt
M core/core/src/main/java/androidx/core/app/PictureInPictureModeChangedInfo.kt
ap...@google.com <ap...@google.com> #32
Project: platform/frameworks/support
Branch: androidx-main
commit cfb6baf849d42492bf39aaa521aded8000258ef6
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 20:44:39 2023
Rename On*Provider interfaces from .java to .kt
In preparation for their conversion to Kotlin.
Test: ./gradlew bOS
BUG: 257291701
Change-Id: I22f7206360e68208a872b49d696abf30fff214cd
M core/core/src/main/java/androidx/core/app/OnMultiWindowModeChangedProvider.kt
M core/core/src/main/java/androidx/core/app/OnNewIntentProvider.kt
M core/core/src/main/java/androidx/core/app/OnPictureInPictureModeChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnConfigurationChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnTrimMemoryProvider.kt
https://android-review.googlesource.com/2782304
Branch: androidx-main
commit cfb6baf849d42492bf39aaa521aded8000258ef6
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 20:44:39 2023
Rename On*Provider interfaces from .java to .kt
In preparation for their conversion to Kotlin.
Test: ./gradlew bOS
BUG: 257291701
Change-Id: I22f7206360e68208a872b49d696abf30fff214cd
M core/core/src/main/java/androidx/core/app/OnMultiWindowModeChangedProvider.kt
M core/core/src/main/java/androidx/core/app/OnNewIntentProvider.kt
M core/core/src/main/java/androidx/core/app/OnPictureInPictureModeChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnConfigurationChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnTrimMemoryProvider.kt
ap...@google.com <ap...@google.com> #33
Project: platform/frameworks/support
Branch: androidx-main
commit 8b143a2d354ea97ac6457d9654357b891db90ba1
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 20:53:22 2023
Convert On*Provider interfaces to Kotlin
Ensure that the Consumer passed to each
Provider's add*Listener and remove*Listener
has the appropriate nullability.
Relnote: "The `OnMultiWindowModeChangedProvider`,
`OnNewIntentProvider`,
`OnPictureInPictureModeChangedProvider`,
`OnConfigurationChangedProvider`,
and `OnTrimMemoryProvider` interfaces have been
converted to Kotlin to ensure that the generic
parameters on the `Consumer` that their listener
methods take have the correct nullability (they
are all non-null)."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: Ib62377a0f6002806074a05126cf6a9ca8c78dcbf
M core/core/api/current.txt
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/OnMultiWindowModeChangedProvider.kt
M core/core/src/main/java/androidx/core/app/OnNewIntentProvider.kt
M core/core/src/main/java/androidx/core/app/OnPictureInPictureModeChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnConfigurationChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnTrimMemoryProvider.kt
https://android-review.googlesource.com/2782305
Branch: androidx-main
commit 8b143a2d354ea97ac6457d9654357b891db90ba1
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 11 20:53:22 2023
Convert On*Provider interfaces to Kotlin
Ensure that the Consumer passed to each
Provider's add*Listener and remove*Listener
has the appropriate nullability.
Relnote: "The `OnMultiWindowModeChangedProvider`,
`OnNewIntentProvider`,
`OnPictureInPictureModeChangedProvider`,
`OnConfigurationChangedProvider`,
and `OnTrimMemoryProvider` interfaces have been
converted to Kotlin to ensure that the generic
parameters on the `Consumer` that their listener
methods take have the correct nullability (they
are all non-null)."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: Ib62377a0f6002806074a05126cf6a9ca8c78dcbf
M core/core/api/current.txt
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/OnMultiWindowModeChangedProvider.kt
M core/core/src/main/java/androidx/core/app/OnNewIntentProvider.kt
M core/core/src/main/java/androidx/core/app/OnPictureInPictureModeChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnConfigurationChangedProvider.kt
M core/core/src/main/java/androidx/core/content/OnTrimMemoryProvider.kt
ap...@google.com <ap...@google.com> #34
Project: platform/frameworks/support
Branch: androidx-main
commit e4b914d4f0ce94d49d6a1fa1d19ba8864c415750
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 20:09:07 2023
Upgrade Core to use Lifecycle 2.6.2
As Lifecycle 2.6 has source breaking changes
for classes written in Kotlin, moving classes
(such as Core's ComponentActivity) to Kotlin
causes issues when run with maxDepVersions.
By updating Core to depend on Lifecycle 2.6.2,
we ensure that maxDepVersions won't cause
issues in subsequent upgrades.
Relnote: "Core now depends on
[Lifecycle `2.6.2`](/jetpack/androidx/releases/lifecycle#2.6.2)."
Test: ./gradlew core:core:build
BUG: 257291701
Change-Id: I2d94c8b7fc3fb3bb59547d56a5d2f06584f1b5a4
M core/core/build.gradle
https://android-review.googlesource.com/2796599
Branch: androidx-main
commit e4b914d4f0ce94d49d6a1fa1d19ba8864c415750
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 20:09:07 2023
Upgrade Core to use Lifecycle 2.6.2
As Lifecycle 2.6 has source breaking changes
for classes written in Kotlin, moving classes
(such as Core's ComponentActivity) to Kotlin
causes issues when run with maxDepVersions.
By updating Core to depend on Lifecycle 2.6.2,
we ensure that maxDepVersions won't cause
issues in subsequent upgrades.
Relnote: "Core now depends on
[Lifecycle `2.6.2`](/jetpack/androidx/releases/lifecycle#2.6.2)."
Test: ./gradlew core:core:build
BUG: 257291701
Change-Id: I2d94c8b7fc3fb3bb59547d56a5d2f06584f1b5a4
M core/core/build.gradle
ap...@google.com <ap...@google.com> #35
Project: platform/frameworks/support
Branch: androidx-main
commit 6a74b4839f791578491d0007f440e395274e89ae
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 21:22:13 2023
Convert Core ComponentActivity to Kotlin
Switch to the new lifecycle property from
Lifecycle 2.6 as part of the Kotlin conversion
of Core's ComponentActivity.
As Kotlin warns if parameter names are different
from their super class names, we update other
classes to use savedInstanceState as the parameter
to onCreate().
Relnote: n/a
Test: ./gradlew core:core:checkApi
BUG: 257291701
Change-Id: Ib395e5da26427aa0d2831da2b7a5d1bdcb8ad22e
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/ComponentActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentFinishEarlyTest.kt
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/TilePreviewActivity.kt
M glance/glance-wear-tiles/integration-tests/template-demos/src/main/java/androidx/glance/wear/tiles/template/demos/TilePreviewActivity.kt
https://android-review.googlesource.com/2797916
Branch: androidx-main
commit 6a74b4839f791578491d0007f440e395274e89ae
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 21:22:13 2023
Convert Core ComponentActivity to Kotlin
Switch to the new lifecycle property from
Lifecycle 2.6 as part of the Kotlin conversion
of Core's ComponentActivity.
As Kotlin warns if parameter names are different
from their super class names, we update other
classes to use savedInstanceState as the parameter
to onCreate().
Relnote: n/a
Test: ./gradlew core:core:checkApi
BUG: 257291701
Change-Id: Ib395e5da26427aa0d2831da2b7a5d1bdcb8ad22e
M core/core/api/restricted_current.txt
M core/core/src/main/java/androidx/core/app/ComponentActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentFinishEarlyTest.kt
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/TilePreviewActivity.kt
M glance/glance-wear-tiles/integration-tests/template-demos/src/main/java/androidx/glance/wear/tiles/template/demos/TilePreviewActivity.kt
ap...@google.com <ap...@google.com> #36
Project: platform/frameworks/support
Branch: androidx-main
commit 9ab92ca29baf2fab19bc2468e77a965890d1188a
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 20:41:42 2023
Rename Core ComponentActivity.java to .kt
In preparation for its conversion to Kotlin.
Test: ./gradlew core:core:build
BUG: 257291701
Change-Id: I273bb3d972cb1020b2a1c187a51770be33919d0d
M core/core/src/main/java/androidx/core/app/ComponentActivity.kt
https://android-review.googlesource.com/2797915
Branch: androidx-main
commit 9ab92ca29baf2fab19bc2468e77a965890d1188a
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 17 20:41:42 2023
Rename Core ComponentActivity.java to .kt
In preparation for its conversion to Kotlin.
Test: ./gradlew core:core:build
BUG: 257291701
Change-Id: I273bb3d972cb1020b2a1c187a51770be33919d0d
M core/core/src/main/java/androidx/core/app/ComponentActivity.kt
ap...@google.com <ap...@google.com> #37
Project: platform/frameworks/support
Branch: androidx-main
commit 4e57779ea244552e66b28f29a24b4a7604e80fe1
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 10 23:26:58 2023
Convert ComponentActivity to Kotlin
Rewrite ComponentActivity in Kotlin.
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Relnote: "`ComponentActivity` has been rewritten in
Kotlin."
Relnote: "Activity now depends on
[Core `1.13.0-alpha01`](/jetpack/androidx/releases/core#1.13.0-alpha01)."
Change-Id: I14f312d6879ce6c91496112fb6b171f81cdbddf2
M activity/activity/api/api_lint.ignore
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/build.gradle
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/CameraValidationResultActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ExtensionValidationResultActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt
M camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt
M camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPagerActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/FragmentTestActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/NewIntentActivity.kt
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/HelpActivity.kt
https://android-review.googlesource.com/2797917
Branch: androidx-main
commit 4e57779ea244552e66b28f29a24b4a7604e80fe1
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 10 23:26:58 2023
Convert ComponentActivity to Kotlin
Rewrite ComponentActivity in Kotlin.
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Relnote: "`ComponentActivity` has been rewritten in
Kotlin."
Relnote: "Activity now depends on
[Core `1.13.0-alpha01`](/jetpack/androidx/releases/core#1.13.0-alpha01)."
Change-Id: I14f312d6879ce6c91496112fb6b171f81cdbddf2
M activity/activity/api/api_lint.ignore
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/build.gradle
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/CameraValidationResultActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ExtensionValidationResultActivity.kt
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt
M camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt
M camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPagerActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/FragmentTestActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/NewIntentActivity.kt
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/HelpActivity.kt
ap...@google.com <ap...@google.com> #38
Project: platform/frameworks/support
Branch: androidx-main
commit fff2ee271b53d0ca453696ba4025ba0f4fffc9b5
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 10 21:15:08 2023
Rename ComponentActivity.java to ComponentActivity.kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I72433e8a00676fa5173b6a7ee273afe7db187b4f
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
https://android-review.googlesource.com/2797835
Branch: androidx-main
commit fff2ee271b53d0ca453696ba4025ba0f4fffc9b5
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 10 21:15:08 2023
Rename ComponentActivity.java to ComponentActivity.kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I72433e8a00676fa5173b6a7ee273afe7db187b4f
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
ap...@google.com <ap...@google.com> #39
Project: platform/frameworks/support
Branch: androidx-main
commit 86cc08969d868fd7508c15db6f518cce9bcc28ef
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 25 20:08:59 2023
Convert ActivityResultLauncher to Kotlin
Rewrite ActivityResultLauncher in Kotlin.
The getContract() method is now an abtract Kotlin
property.
This also moves the `ActivityResultLauncher` Kotlin
extensions from `activity-ktx` back to `activity` since
we can't have two Kotlin files with the same name.
Relnote: "`ActivityResultLauncher` has been rewritten in
Kotlin. As part of that conversion, the `getContract` method
is now an abstract Kotlin property. This is a binary compatible
change, but source breaking if your implementation of
`ActivityResultLauncher` is written in Kotlin."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Id4615d19b383b2438be6a8f68da7584394d13515
M activity/activity-compose/api/current.ignore
M activity/activity-compose/api/current.txt
M activity/activity-compose/api/restricted_current.ignore
M activity/activity-compose/api/restricted_current.txt
M activity/activity-compose/src/androidTest/java/androidx/activity/compose/ActivityResultRegistryTest.kt
M activity/activity-compose/src/main/java/androidx/activity/compose/ActivityResultRegistry.kt
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/src/androidTest/java/androidx/activity/result/ActivityResultLauncherTest.kt
M activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultCaller.kt
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultLauncherTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
https://android-review.googlesource.com/2804284
Branch: androidx-main
commit 86cc08969d868fd7508c15db6f518cce9bcc28ef
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 25 20:08:59 2023
Convert ActivityResultLauncher to Kotlin
Rewrite ActivityResultLauncher in Kotlin.
The getContract() method is now an abtract Kotlin
property.
This also moves the `ActivityResultLauncher` Kotlin
extensions from `activity-ktx` back to `activity` since
we can't have two Kotlin files with the same name.
Relnote: "`ActivityResultLauncher` has been rewritten in
Kotlin. As part of that conversion, the `getContract` method
is now an abstract Kotlin property. This is a binary compatible
change, but source breaking if your implementation of
`ActivityResultLauncher` is written in Kotlin."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Id4615d19b383b2438be6a8f68da7584394d13515
M activity/activity-compose/api/current.ignore
M activity/activity-compose/api/current.txt
M activity/activity-compose/api/restricted_current.ignore
M activity/activity-compose/api/restricted_current.txt
M activity/activity-compose/src/androidTest/java/androidx/activity/compose/ActivityResultRegistryTest.kt
M activity/activity-compose/src/main/java/androidx/activity/compose/ActivityResultRegistry.kt
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/src/androidTest/java/androidx/activity/result/ActivityResultLauncherTest.kt
M activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultCaller.kt
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultLauncherTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
ap...@google.com <ap...@google.com> #40
Project: platform/frameworks/support
Branch: androidx-main
commit e91ba67bdd4ef797487b8d757a2ac771a1cfc60a
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 25 20:00:49 2023
Rename ActivityResultLauncher.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I19348e67afb8fe2f1ca9f5483e31fe8edfa29e8a
M activity/activity/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
https://android-review.googlesource.com/2804283
Branch: androidx-main
commit e91ba67bdd4ef797487b8d757a2ac771a1cfc60a
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 25 20:00:49 2023
Rename ActivityResultLauncher.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I19348e67afb8fe2f1ca9f5483e31fe8edfa29e8a
M activity/activity/src/main/java/androidx/activity/result/ActivityResultLauncher.kt
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #41
Project: platform/frameworks/support
Branch: androidx-main
commit d949529d18ac83c6775c7824138b52eb544cdf1c
Author: Ian Lake <ilake@google.com>
Date: Fri Oct 27 17:34:57 2023
Make ComponentActivity.onNewIntent take a non-null Intent
This Intent is always non-null so we should mark
it as such until the framework is updated to also
make it non-null.
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Ia694837203011f1c6aa611aea6c20f1b7473af1b
M activity/activity/src/androidTest/java/androidx/activity/ComponentActivityCallbacksTest.kt
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/NewIntentActivity.kt
M window/window-demos/demo/src/main/java/androidx/window/demo/embedding/SplitActivityDetail.kt
https://android-review.googlesource.com/2808359
Branch: androidx-main
commit d949529d18ac83c6775c7824138b52eb544cdf1c
Author: Ian Lake <ilake@google.com>
Date: Fri Oct 27 17:34:57 2023
Make ComponentActivity.onNewIntent take a non-null Intent
This Intent is always non-null so we should mark
it as such until the framework is updated to also
make it non-null.
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Ia694837203011f1c6aa611aea6c20f1b7473af1b
M activity/activity/src/androidTest/java/androidx/activity/ComponentActivityCallbacksTest.kt
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/test/NewIntentActivity.kt
M window/window-demos/demo/src/main/java/androidx/window/demo/embedding/SplitActivityDetail.kt
ap...@google.com <ap...@google.com> #42
Project: platform/frameworks/support
Branch: androidx-main
commit dc886d9a2f535799cbf4bc6ae4ed5f98b3a8c2fb
Author: Ian Lake <ilake@google.com>
Date: Thu Oct 26 22:47:00 2023
Rename ActivityResultCaller.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I39957d5e2e01d634d6f2ff2f4b440dc8af19bb37
M activity/activity/src/main/java/androidx/activity/result/ActivityResultCaller.kt
https://android-review.googlesource.com/2806974
Branch: androidx-main
commit dc886d9a2f535799cbf4bc6ae4ed5f98b3a8c2fb
Author: Ian Lake <ilake@google.com>
Date: Thu Oct 26 22:47:00 2023
Rename ActivityResultCaller.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I39957d5e2e01d634d6f2ff2f4b440dc8af19bb37
M activity/activity/src/main/java/androidx/activity/result/ActivityResultCaller.kt
ap...@google.com <ap...@google.com> #43
Project: platform/frameworks/support
Branch: androidx-main
commit 1ac2124d0e27761bc7f09d122d99254c69411631
Author: Ian Lake <ilake@google.com>
Date: Thu Oct 26 23:03:00 2023
Convert ActivityResultCaller to Kotlin
Rewrite ActivityResultCaller to Kotlin.
This also moves the `ActivityResultCaller` Kotlin
extensions from `activity-ktx` back to `activity` since
we can't have two Kotlin files with the same name+package.
Relnote: "`ActivityResultCaller` has been rewritten in
Kotlin."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Ib02e49c49dbed2ce0d25ac71c8caf0325ffb8142
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
M activity/activity-ktx/src/androidTest/AndroidManifest.xml
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultCaller.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/AndroidManifest.xml
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultCallerTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultCaller.kt
https://android-review.googlesource.com/2805770
Branch: androidx-main
commit 1ac2124d0e27761bc7f09d122d99254c69411631
Author: Ian Lake <ilake@google.com>
Date: Thu Oct 26 23:03:00 2023
Convert ActivityResultCaller to Kotlin
Rewrite ActivityResultCaller to Kotlin.
This also moves the `ActivityResultCaller` Kotlin
extensions from `activity-ktx` back to `activity` since
we can't have two Kotlin files with the same name+package.
Relnote: "`ActivityResultCaller` has been rewritten in
Kotlin."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: Ib02e49c49dbed2ce0d25ac71c8caf0325ffb8142
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
M activity/activity-ktx/src/androidTest/AndroidManifest.xml
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResultCaller.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/AndroidManifest.xml
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultCallerTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultCaller.kt
ap...@google.com <ap...@google.com> #44
Project: platform/frameworks/support
Branch: androidx-main
commit 2b9627fa602319fc8f0da026da1d6a2eb69c8fb5
Author: Ian Lake <ilake@google.com>
Date: Thu Dec 14 00:51:20 2023
Convert ActivityResult to Kotlin
Rewrite ActivityResult in Kotlin.
This makes the resultCode and data getters into
public properties.
This also moves the ActivityResult Kotlin extensions
from activity-ktx back to activity since we can't
have two Kotlin files with the same name.
Relnote: "`ActivityResult` has been rewritten in Kotlin. The
`ActivityResult` Kotlin extensions that support destructuring
into the `resultCode` and `data` fields have been moved from
`activity-ktx` to `activity`."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: I0565a95aa4470a4cd23dcddf75df3f9dd8dca19e
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResult.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResult.kt
https://android-review.googlesource.com/2875054
Branch: androidx-main
commit 2b9627fa602319fc8f0da026da1d6a2eb69c8fb5
Author: Ian Lake <ilake@google.com>
Date: Thu Dec 14 00:51:20 2023
Convert ActivityResult to Kotlin
Rewrite ActivityResult in Kotlin.
This makes the resultCode and data getters into
public properties.
This also moves the ActivityResult Kotlin extensions
from activity-ktx back to activity since we can't
have two Kotlin files with the same name.
Relnote: "`ActivityResult` has been rewritten in Kotlin. The
`ActivityResult` Kotlin extensions that support destructuring
into the `resultCode` and `data` fields have been moved from
`activity-ktx` to `activity`."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: I0565a95aa4470a4cd23dcddf75df3f9dd8dca19e
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/src/main/java/androidx/activity/result/ActivityResult.kt
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResult.kt
ap...@google.com <ap...@google.com> #45
Project: platform/frameworks/support
Branch: androidx-main
commit d0bd6c7654cc46122489507c366c307a74857c53
Author: Ian Lake <ilake@google.com>
Date: Thu Dec 14 00:25:44 2023
Rename ActivityResult.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I2c8016d67a7d7a0ad8e1f271953cee447f876554
M activity/activity/src/main/java/androidx/activity/result/ActivityResult.kt
https://android-review.googlesource.com/2875034
Branch: androidx-main
commit d0bd6c7654cc46122489507c366c307a74857c53
Author: Ian Lake <ilake@google.com>
Date: Thu Dec 14 00:25:44 2023
Rename ActivityResult.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I2c8016d67a7d7a0ad8e1f271953cee447f876554
M activity/activity/src/main/java/androidx/activity/result/ActivityResult.kt
ap...@google.com <ap...@google.com> #46
Project: platform/frameworks/support
Branch: androidx-main
commit 199afbbaf3a522f7f320de61b81856ae0df31150
Author: Ian Lake <ilake@google.com>
Date: Mon Dec 18 23:41:34 2023
Convert ActivityResultRegistry to Kotlin.
Rewrite ActivityResultRegistry in Kotlin.
This ensures that the nullability in the
contract passed to register is correctly passed
through to the resulting nullability on the
ActivityResultLauncher returned.
Relnote: "`ActivityResultRegistry` has been rewritten
in Kotlin. This ensures that the nullability of the
generics on the contract passed to `register` will
correctly be passed through to the
`ActivityResultLauncher` returned to you."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: I121f0ca842066fb73ab0e51b89720029e991407a
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultRegistryTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultRegistry.kt
https://android-review.googlesource.com/2881572
Branch: androidx-main
commit 199afbbaf3a522f7f320de61b81856ae0df31150
Author: Ian Lake <ilake@google.com>
Date: Mon Dec 18 23:41:34 2023
Convert ActivityResultRegistry to Kotlin.
Rewrite ActivityResultRegistry in Kotlin.
This ensures that the nullability in the
contract passed to register is correctly passed
through to the resulting nullability on the
ActivityResultLauncher returned.
Relnote: "`ActivityResultRegistry` has been rewritten
in Kotlin. This ensures that the nullability of the
generics on the contract passed to `register` will
correctly be passed through to the
`ActivityResultLauncher` returned to you."
Test: ./gradlew activity:activity:checkApi
BUG: 257291701
Change-Id: I121f0ca842066fb73ab0e51b89720029e991407a
M activity/activity/api/current.ignore
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.ignore
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/result/ActivityResultRegistryTest.kt
M activity/activity/src/main/java/androidx/activity/result/ActivityResultRegistry.kt
ap...@google.com <ap...@google.com> #47
Project: platform/frameworks/support
Branch: androidx-main
commit f80d369c2b28b170a3ff00f86ae4c0d632e181d0
Author: Ian Lake <ilake@google.com>
Date: Mon Dec 18 21:42:11 2023
Rename ActivityResultRegistry.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I1b00a8c5e948352c25c5c8907b51e78bee94adb9
M activity/activity/src/main/java/androidx/activity/result/ActivityResultRegistry.kt
https://android-review.googlesource.com/2881571
Branch: androidx-main
commit f80d369c2b28b170a3ff00f86ae4c0d632e181d0
Author: Ian Lake <ilake@google.com>
Date: Mon Dec 18 21:42:11 2023
Rename ActivityResultRegistry.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: I1b00a8c5e948352c25c5c8907b51e78bee94adb9
M activity/activity/src/main/java/androidx/activity/result/ActivityResultRegistry.kt
ap...@google.com <ap...@google.com> #48
Project: platform/frameworks/support
Branch: androidx-main
commit 320df280c1f53c234e520601a1b9cb2245b8244b
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 19:43:15 2023
Convert ImmLeaksCleaner to Kotlin
Rewrite ImmLeaksCleaner to Kotlin.
Extract the logic of working with fields
via reflection from the actual business
logic of what fields need to be cleaned by
using a sealed class hierarchy.
Test: LeakInputMethodManagerTest still passes
BUG: 257291701
Change-Id: If281ab7e27229fbd5a0d0a488caccce59c184501
M activity/activity/src/main/java/androidx/activity/ImmLeaksCleaner.kt
https://android-review.googlesource.com/2882891
Branch: androidx-main
commit 320df280c1f53c234e520601a1b9cb2245b8244b
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 19:43:15 2023
Convert ImmLeaksCleaner to Kotlin
Rewrite ImmLeaksCleaner to Kotlin.
Extract the logic of working with fields
via reflection from the actual business
logic of what fields need to be cleaned by
using a sealed class hierarchy.
Test: LeakInputMethodManagerTest still passes
BUG: 257291701
Change-Id: If281ab7e27229fbd5a0d0a488caccce59c184501
M activity/activity/src/main/java/androidx/activity/ImmLeaksCleaner.kt
ap...@google.com <ap...@google.com> #49
Project: platform/frameworks/support
Branch: androidx-main
commit 226e08ae45ace12cd22f0b97750cd176315c3727
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 18:55:08 2023
Rename ImmLeaksCleaner.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: Ic1c131743fea46f9c759ae6d2730f7cf3c26a60a
M activity/activity/src/main/java/androidx/activity/ImmLeaksCleaner.kt
https://android-review.googlesource.com/2882890
Branch: androidx-main
commit 226e08ae45ace12cd22f0b97750cd176315c3727
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 18:55:08 2023
Rename ImmLeaksCleaner.java to .kt
As part of the Kotlin conversion process.
Test: n/a
BUG: 257291701
Change-Id: Ic1c131743fea46f9c759ae6d2730f7cf3c26a60a
M activity/activity/src/main/java/androidx/activity/ImmLeaksCleaner.kt
ap...@google.com <ap...@google.com> #50
Project: platform/frameworks/support
Branch: androidx-main
commit 150e6253b7f6943858dfddef0c4b135b373a883d
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 21:25:16 2023
Move Kotlin extensions from activity-ktx to activity
Move all remaining Kotlin extensions from activity-ktx
back into activity now that activity is fully written
in Kotlin.
Relnote: "The Kotlin extensions of `by viewModels()` for
`ComponentActivity` and `trackPipAnimationHintView` have
been moved from `activity-ktx` to `activity`. The
`activity-ktx` artifact is now completely empty."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: I0a444140b10671bbfbb5aeab66f1a3a7e9d28061
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/lint-baseline.xml
D activity/activity-ktx/src/androidTest/AndroidManifest.xml
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/AndroidManifest.xml
M activity/activity/src/androidTest/java/androidx/activity/ActivityViewModelLazyTest.kt
M activity/activity/src/main/java/androidx/activity/ActivityViewModelLazy.kt
M activity/activity/src/main/java/androidx/activity/PipHintTracker.kt
https://android-review.googlesource.com/2882894
Branch: androidx-main
commit 150e6253b7f6943858dfddef0c4b135b373a883d
Author: Ian Lake <ilake@google.com>
Date: Tue Dec 19 21:25:16 2023
Move Kotlin extensions from activity-ktx to activity
Move all remaining Kotlin extensions from activity-ktx
back into activity now that activity is fully written
in Kotlin.
Relnote: "The Kotlin extensions of `by viewModels()` for
`ComponentActivity` and `trackPipAnimationHintView` have
been moved from `activity-ktx` to `activity`. The
`activity-ktx` artifact is now completely empty."
Test: ./gradlew checkApi
BUG: 257291701
Change-Id: I0a444140b10671bbfbb5aeab66f1a3a7e9d28061
M activity/activity-ktx/api/current.ignore
M activity/activity-ktx/api/current.txt
M activity/activity-ktx/api/restricted_current.ignore
M activity/activity-ktx/api/restricted_current.txt
D activity/activity-ktx/lint-baseline.xml
D activity/activity-ktx/src/androidTest/AndroidManifest.xml
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/AndroidManifest.xml
M activity/activity/src/androidTest/java/androidx/activity/ActivityViewModelLazyTest.kt
M activity/activity/src/main/java/androidx/activity/ActivityViewModelLazy.kt
M activity/activity/src/main/java/androidx/activity/PipHintTracker.kt
il...@google.com <il...@google.com> #51
All of AndroidX Activity has now been converted to Kotlin and all of activity-ktx
has now been merged into activity
.
The last of these changes will be available in Activity 1.9.0-alpha02.
ma...@gmail.com <ma...@gmail.com> #52
Does this mean that there won't be any releases of activity-ktx
going forward? is it safe to remove activity-ktx
and just use activity
?
jb...@google.com <jb...@google.com> #53
Yes, activity-ktx
is now empty and you can depend directly on activity
.
Description
Component used: Activity
It would be beneficial to have all of the AndroidX Activity classes rewritten in Kotlin. Besides providing better nullability guarantees, this would also help remove some of the friction in maintaining this library and evolving it over time.