Verified
Status Update
Comments
yb...@google.com <yb...@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.
yb...@google.com <yb...@google.com> #4
The fix will be available in alpha10.
[Deleted User] <[Deleted User]> #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
yb...@google.com <yb...@google.com> #6
Ah, that's because we have a typo in our Proguard file. Change WorkParameters to WorkerParameters.
[Deleted User] <[Deleted User]> #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
[Deleted User] <[Deleted User]> #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?
yb...@google.com <yb...@google.com> #9
yb...@google.com <yb...@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?
yb...@google.com <yb...@google.com> #11
There shouldn't be any issues with targetSdkVersion 26 and compileSdkVersion 28.
[Deleted User] <[Deleted User]> #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.
yb...@google.com <yb...@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.
yb...@google.com <yb...@google.com>
da...@google.com <da...@google.com>
da...@google.com <da...@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
dr...@gmail.com <dr...@gmail.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?
da...@google.com <da...@google.com> #17
alpha10.
Description
Version used: 1.1.0-alpha5
Devices/Android versions reproduced on: Compile-time error
Android Studio & tools: Studio 3.0.1, gradle-build 3.0.1
When getting an error from the Room annotation processor in a Java environment, the Gradle error doesn't include any mention on the class nor the field. I.e. "cannot find getter for field". This means that it's incredibly difficult to debug this kind of issues.
This is also happening when using --info, --debug or --stacktrace as the gradle task parameter.