Mar*_*nas 8 android exception transitions android-4.4-kitkat
最近我得到了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();
Run Code Online (Sandbox Code Playgroud)
完全例外:
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)
Run Code Online (Sandbox Code Playgroud)
更新
从if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)到更改后,if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)我没有异常。
Jac*_*alk 16
您正在混合来自 androidx(支持库)和平台的转换。例如。:
import androidx.transition.AutoTransition;
import android.transition.Fade;
Run Code Online (Sandbox Code Playgroud)
(注意缺少的“x”)
将其更改为仅使用支持库,如下所示:
import androidx.transition.AutoTransition;
import androidx.transition.Fade;
Run Code Online (Sandbox Code Playgroud)
小智 3
检查您的片段导入,如下所示。
import android.support.v4.app.Fragment;
Run Code Online (Sandbox Code Playgroud)
如果您使用了 addSharedElement,请在应用程序级别 gradle 文件 api 级别 21 中进行更改。
minSdkVersion 21
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |