Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
ia...@gmail.com <ia...@gmail.com> #2
We are not able to reproduce this issue on Nexus 6P, NPF26F build with plaid app version=0.9.9
Can you provide the below requested information to better understand the issue:
Android build
Which Android build are you using? (e.g. KVT49L)
Frequency
How frequently does this issue occur? (e.g 100% of the time, 10% of the time)
Also please mention the Plaid app version.
Can you provide the below requested information to better understand the issue:
Android build
Which Android build are you using? (e.g. KVT49L)
Frequency
How frequently does this issue occur? (e.g 100% of the time, 10% of the time)
Also please mention the Plaid app version.
su...@google.com <su...@google.com> #3
I'm also using Nexus 6P with NPF26F and plaid 0.9.9 installed from the play store.
It happens 100% of the time but the RecyclerView has to be positioned in such a way that the animation would make the bottom comment drop off the bottom of the screen. Then click an item quickly several times without letting the expand animation complete and it will crash after several clicks.
It happens 100% of the time but the RecyclerView has to be positioned in such a way that the animation would make the bottom comment drop off the bottom of the screen. Then click an item quickly several times without letting the expand animation complete and it will crash after several clicks.
su...@google.com <su...@google.com> #4
Thanks for the detailed inputs.
We have passed this defect on to the development team and will update this issue with more information as it becomes available.
We have passed this defect on to the development team and will update this issue with more information as it becomes available.
to...@googlemail.com <to...@googlemail.com> #5
I'm getting the same crash when using TransitionManager to animate the RecyclerView's bounds (changing the constraintSet with ConstraintLayout) if the user is interacting with the list. The problem doesn't occur if the user is not interacting with the list during the transition.
su...@google.com <su...@google.com> #6
[Comment deleted]
to...@googlemail.com <to...@googlemail.com> #7
[Comment deleted]
su...@google.com <su...@google.com> #8
[Comment deleted]
su...@google.com <su...@google.com> #9
[Comment deleted]
to...@googlemail.com <to...@googlemail.com> #10
I got a similar issue will expanding/collapsing items in a recyclerView. I posted earlier but I removed my post when I thought it was fixed and related to something else than the TransitionManager.
But I got the crash again so I investigated further.
The Issue is happening when you are not specifying a transition to the TransitionManager and that you let Android defining it for you, like :
TransitionManager.beginDelayedTransition(hiddenSection);
If you specify an animation it should solve your issue. Try something like that :
chevron.setOnClickListener(v -> {
ChangeBounds changeBounds = new ChangeBounds();
changeBounds.setDuration(hiddenSection.getMeasuredHeight());
TransitionManager.beginDelayedTransition(hiddenSection, changeBounds);
chevron.setRotation(hiddenSection.getVisibility() == View.GONE ? 0 : 180);
hiddenSection.setVisibility(hiddenSection.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
});
Hope it help :)
Also don't notify the adapter that the item changed. Otherwise the items might overlaps each others.
But I got the crash again so I investigated further.
The Issue is happening when you are not specifying a transition to the TransitionManager and that you let Android defining it for you, like :
TransitionManager.beginDelayedTransition(hiddenSection);
If you specify an animation it should solve your issue. Try something like that :
chevron.setOnClickListener(v -> {
ChangeBounds changeBounds = new ChangeBounds();
changeBounds.setDuration(hiddenSection.getMeasuredHeight());
TransitionManager.beginDelayedTransition(hiddenSection, changeBounds);
chevron.setRotation(hiddenSection.getVisibility() == View.GONE ? 0 : 180);
hiddenSection.setVisibility(hiddenSection.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
});
Hope it help :)
Also don't notify the adapter that the item changed. Otherwise the items might overlaps each others.
su...@google.com <su...@google.com> #11
Any update on this? I'm having the same problem. It's not happening all the time but I can confirm:
- It's just happening when the transition it's not passed as an argument.
-- TransitionManager.beginDelayedTransition(mRecyclerView); <------ This crashes
-- TransitionManager.beginDelayedTransition(mRecyclerView, new ChangeBounds()); <------ This does not crash
- It's happening when the RecyclerView VH that is gonna perform the animation is taller than the screen itself.
- It's just happening when the transition it's not passed as an argument.
-- TransitionManager.beginDelayedTransition(mRecyclerView); <------ This crashes
-- TransitionManager.beginDelayedTransition(mRecyclerView, new ChangeBounds()); <------ This does not crash
- It's happening when the RecyclerView VH that is gonna perform the animation is taller than the screen itself.
to...@googlemail.com <to...@googlemail.com> #12
At the moment I'm not sure about my last point (...taller than the screen...).
to...@googlemail.com <to...@googlemail.com> #13
As well:
- new TransitionSet().addTransition(new Fade()).addTransition(new ChangeBounds())); <-------- This crashes
- new TransitionSet().addTransition(new ChangeBounds())); <-------- This doesn't crash
- new TransitionSet().addTransition(new Fade()).addTransition(new ChangeBounds())); <-------- This crashes
- new TransitionSet().addTransition(new ChangeBounds())); <-------- This doesn't crash
ap...@google.com <ap...@google.com> #14
Okay, I have something.
Looks like DiffTool is on my way. RecyclerView DiffTool is doing what I was trying to achieve with TransitionManager.beginDelayedTransition(hiddenSection), so when I removed that line the random crash disappeared. I added DiffUtil afterwards so I didn't realize that DiffTool was performing such animations.
Looks like DiffTool is on my way. RecyclerView DiffTool is doing what I was trying to achieve with TransitionManager.beginDelayedTransition(hiddenSection), so when I removed that line the random crash disappeared. I added DiffUtil afterwards so I didn't realize that DiffTool was performing such animations.
su...@google.com <su...@google.com> #15
Hey Googlers, I know how to fix it.
I already found this issue and fixed it in my transitions backporthttps://github.com/andkulikov/Transitions-Everywhere
The issue is Visibility transition has to detach an animating view from an overlay in onPause as the transition could be canceled at this moment and the view could be reused somewhere else(recyclerview)
The Commit with the fix:
https://github.com/andkulikov/Transitions-Everywhere/commit/0d977dd7dddee12bdb02f78b1d4c10d649190b26
Also I believe it should be fixed in framework's transitions.
Everyone from this topic who wants to use fixed version of transitions can usehttps://github.com/andkulikov/Transitions-Everywhere for now
I already found this issue and fixed it in my transitions backport
The issue is Visibility transition has to detach an animating view from an overlay in onPause as the transition could be canceled at this moment and the view could be reused somewhere else(recyclerview)
The Commit with the fix:
Also I believe it should be fixed in framework's transitions.
Everyone from this topic who wants to use fixed version of transitions can use
to...@googlemail.com <to...@googlemail.com> #16
More details about this issue and how to fix it in Transitions framework - https://issuetracker.google.com/issues/67856407
su...@google.com <su...@google.com> #17
Fixed in both androidx transitions and recyclerview and will be released as
androidx.transition:transition:1.1.0-alpha1
androidx.recyclerview:recyclerview:1.1.0-alpha01
androidx.transition:transition:1.1.0-alpha1
androidx.recyclerview:recyclerview:1.1.0-alpha01
to...@googlemail.com <to...@googlemail.com> #18
The fix is not perfect. If I am scrolling, and the transition happens, I loose the touch, need to lift the finger and put again on the screen.
On my apps, I usually do:
TransitionManager.beginDelayedTransition(parentLayout, transition)
filterRecycler.isVisible = !filterRecycler.isVisible
filterItem.isEnabled = false
defaultRecycler.setOnTouchListener { _, _ -> true }
launch(Dispatchers.Main) {
delay(transitionDelay + 50)
filterItem.isEnabled = true
defaultRecycler.setOnTouchListener { _, _ -> false }
}
Video sample of the bug:
https://photos.app.goo.gl/WCSCangdyVeHbVoe9
On my apps, I usually do:
TransitionManager.beginDelayedTransition(parentLayout, transition)
filterRecycler.isVisible = !filterRecycler.isVisible
filterItem.isEnabled = false
defaultRecycler.setOnTouchListener { _, _ -> true }
launch(Dispatchers.Main) {
delay(transitionDelay + 50)
filterItem.isEnabled = true
defaultRecycler.setOnTouchListener { _, _ -> false }
}
Video sample of the bug:
su...@google.com <su...@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.
to...@googlemail.com <to...@googlemail.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?
su...@google.com <su...@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.
to...@googlemail.com <to...@googlemail.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'
su...@google.com <su...@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.
to...@googlemail.com <to...@googlemail.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/
ra...@google.com <ra...@google.com> #25
You need to add:
-dontwarn sun.misc.Unsafe
-dontwarn sun.misc.Unsafe
to...@googlemail.com <to...@googlemail.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?
ri...@googlemail.com <ri...@googlemail.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.
ri...@googlemail.com <ri...@googlemail.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?
ra...@google.com <ra...@google.com> #29
That is correct. Worker must have a public constructor unless you instantiate it via your own WorkerFactory.
Description
Version used: 1.0.0-alpha09
When using ProGuard, the Worker(Context context, WorkerParameters) constructor isn't kept, leading to Workers being unable to be created:
DefaultWorkerFactory: Could not instantiate com.google.android.apps.muzei.sync.ProviderChangedWorker
DefaultWorkerFactory: java.lang.NoSuchMethodException: <init> []
DefaultWorkerFactory: at java.lang.Class.getConstructor0(Class.java:2327)
DefaultWorkerFactory: at java.lang.Class.getDeclaredConstructor(Class.java:2166)
DefaultWorkerFactory: at androidx.work.DefaultWorkerFactory.createWorker(DefaultWorkerFactory.java:58)
DefaultWorkerFactory: at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:180)
DefaultWorkerFactory: at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:117)
DefaultWorkerFactory: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
DefaultWorkerFactory: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
DefaultWorkerFactory: at java.lang.Thread.run(Thread.java:764)
WorkerWrapper: Could for create Worker com.google.android.apps.muzei.sync.ProviderChangedWorker
I had to manually add the ProGuard rule:
-keepclassmembers class * extends androidx.work.Worker {
public <init>(android.content.Context,androidx.work.WorkerParameters);
}