最近我遇到了 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/