安卓 java.lang.IllegalArgumentException : Invalid Transition types

标签 android exception android-4.4-kitkat transitions

最近我遇到了 java.lang.IllegalArgumentException: Invalid Transition types。 此异常发生在 android api 19 上,并且在我将 android 构建工具和支持库更新到版本 27 后出现。

有人知道 KitKat 转换有什么变化吗?

    Fragment fragment = new  Fragment();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        Transition transition = new AutoTransition();
        fragment.setSharedElementEnterTransition(transition);
    }

    String backStateName = fragment.getClass().getName();
    FragmentManager manager = getFragmentManager();
    FragmentTransaction ft = manager.beginTransaction();
    ft.addSharedElement(view, "TransitionView");
    ft.replace(R.id.mainActivity_container, fragment, backStateName);
    ft.addToBackStack(backStateName);
    ft.commit();

完全异常:

Fatal Exception: java.lang.IllegalArgumentException: Invalid Transition types
   at android.support.v4.app.FragmentTransition.chooseImpl(FragmentTransition.java:461)
   at android.support.v4.app.FragmentTransition.configureTransitionsOrdered(FragmentTransition.java:3317)
   at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2380)
   at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
   at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5590)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
   at dalvik.system.NativeStart.main(NativeStart.java)

更新

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 更改为 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 之后> 我没有异常(exception)。

最佳答案

您正在混合来自 androidx(支持库)和平台的转换。 例如:

import androidx.transition.AutoTransition;
import android.transition.Fade;

(注意缺少的“x”)

将其更改为仅使用支持库,如下所示:

import androidx.transition.AutoTransition;
import androidx.transition.Fade;

关于安卓 java.lang.IllegalArgumentException : Invalid Transition types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812508/

相关文章:

android - 如何在 Android 中的 Firebase Auth 中使用多个帐户?

android - 如何从 Android 中的 SQLite 中获取记录

Android Studio XML 预览不显示

c# - 显示和捕获 C# 异常

Ice Cream Sandwich 上的 Android Visualizer(音频效果)运行时异常

android - 未找到 Kitkat 及以下版本的可绘制 abc_vector_test 资源异常

Android 4.4.2(api级别= 19)Webview问题

java - Android 处理程序和线程在启动时未运行?

Java - 意外的 ZipException(意外的错误类型)

android - 在 Android KitKat 中接收彩信