当Project Build使用New API Level 21时,Android Project Fragment Transition抛出异常

时间:2014-11-05 09:22:58

标签: java android android-fragments android-5.0-lollipop

例外是:

“无法解析L android / support / v4 / app / FragmentTransitionCompat21 $ 1的超类;”

我正在尝试使用以下函数从Fragment Manager的Fragment Back Stack中弹出最后一个Fragment Transition:

getSupportFragmentManager().popBackStack();

当我这样做时,函数调用抛出以下错误。这只发生在我使用New Android API Version 21作为Build target时。

相同代码适用于旧版API 20版。

错误:找不到'android.support.v4.app.FragmentTransitionCompat21 $ 1'的超类

它似乎是'FragmentTransitionCompat21'基类中的内部类。

错误:

W/dalvikvm(1356): Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$1; (1082)

W/dalvikvm(1356): Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$1;' failed

E/dalvikvm(1356): Could not find class 'android.support.v4.app.FragmentTransitionCompat21$1', referenced from method android.support.v4.app.FragmentTransitionCompat21.setEpicenter

W/dalvikvm(1356): VFY: unable to resolve new-instance 358 (Landroid/support/v4/app/FragmentTransitionCompat21$1;) in Landroid/support/v4/app/FragmentTransitionCompat21;

有人发现类似错误吗?请帮忙解决这个问题,谢谢。

3 个答案:

答案 0 :(得分:1)

在前几天我也面临这种错误,然后我尝试用API 22代替android.support.v4.app.FragmentTransition的v7 appcompat。

你试试这个吗,

import android.app.FragmentTransaction;

有代码片段。

FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.addToBackStack("");
fragmentTransaction.replace(R.id.content_frame, Fr);
fragmentTransaction.commit();

答案 1 :(得分:0)

它肯定会引用API 21版本4支持库,如果您在ObjectAnimator更改它的事务上设置了任何动画,也可以从R.anim引用您的动画,或者它将通过和错误。

答案 2 :(得分:0)

如果您试图从片段内部的堆栈中弹出片段,则应使用getChildFragmentManager而不是getfragmentManager。

[https://stackoverflow.com/questions/6847460/fragments-within-fragments] [1]