"androidx.transition.TransitionSet cannot be cast to android.transition.Transition" 将 androidx 生命周期从 2.2.0-alpha03 更新到 alpha04 之后
"androidx.transition.TransitionSet cannot be cast to android.transition.Transition" after updating androidx lifecycle from 2.2.0-alpha03 to alpha04
还有其他一些类似的问题,但都参考了 Android 支持库。我正在使用新的 androidx 库。
将 androidx 生命周期依赖项从 2.2.0-alpha03 更新到 2.2.0-alpha04 后,出现以下崩溃(在 Android 9):
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp, PID: 12345
java.lang.ClassCastException: androidx.transition.TransitionSet cannot be cast to android.transition.Transition
at androidx.fragment.app.FragmentTransition.setListenerForTransitionEnd(FragmentTransition.java:307)
at androidx.fragment.app.FragmentTransition.configureTransitionsOrdered(FragmentTransition.java:419)
at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:139)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2383)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2341)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2244)
at androidx.fragment.app.FragmentManager.run(FragmentManager.java:422)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7037)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
与版本 2.2.0-alpha05 相同的问题。
更新:实际上,似乎正在引入 androidx 片段 1.2.0-alpha03,这就是导致问题的原因。使用片段 1.2.0-alpha02 时,不会发生崩溃。有问题的转换添加到这里:
调用后发生崩溃:
supportFragmentManager
.beginTransaction()
.remove(f)
.commit()
我发现的唯一解决方法是删除退出转换:
f.exitTransition = Slide(gravity)
注意,片段 f 的类型为:androidx.fragment.app.Fragment
有什么想法吗?
此问题已在即将发布的 Fragment 1.2.0-beta01 版本中得到修复。
我有同样的问题运行 gradle
实现“androidx.fragment:fragment-ktx:1.2.5”
none 以上解决方案对我有用
但是,当我升级到 1.3.0-rc01 时,问题消失了
还有其他一些类似的问题,但都参考了 Android 支持库。我正在使用新的 androidx 库。
将 androidx 生命周期依赖项从 2.2.0-alpha03 更新到 2.2.0-alpha04 后,出现以下崩溃(在 Android 9):
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp, PID: 12345
java.lang.ClassCastException: androidx.transition.TransitionSet cannot be cast to android.transition.Transition
at androidx.fragment.app.FragmentTransition.setListenerForTransitionEnd(FragmentTransition.java:307)
at androidx.fragment.app.FragmentTransition.configureTransitionsOrdered(FragmentTransition.java:419)
at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:139)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2383)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2341)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2244)
at androidx.fragment.app.FragmentManager.run(FragmentManager.java:422)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7037)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
与版本 2.2.0-alpha05 相同的问题。
更新:实际上,似乎正在引入 androidx 片段 1.2.0-alpha03,这就是导致问题的原因。使用片段 1.2.0-alpha02 时,不会发生崩溃。有问题的转换添加到这里:
调用后发生崩溃:
supportFragmentManager
.beginTransaction()
.remove(f)
.commit()
我发现的唯一解决方法是删除退出转换:
f.exitTransition = Slide(gravity)
注意,片段 f 的类型为:androidx.fragment.app.Fragment
有什么想法吗?
此问题已在即将发布的 Fragment 1.2.0-beta01 版本中得到修复。
我有同样的问题运行 gradle 实现“androidx.fragment:fragment-ktx:1.2.5” none 以上解决方案对我有用 但是,当我升级到 1.3.0-rc01 时,问题消失了