Android 项目片段转换在构建目标使用新 API 级别 21 时引发异常

例外情况是:

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

我正在尝试使用以下函数从片段管理器的片段后退堆栈中弹出最后一个片段转换:

getSupportFragmentManager().popBackStack();,

当我这样做时,函数调用抛出以下错误。只有当我使用New Android API Version 21作为构建目标时,才会发生这种情况。

相同的代码适用于较旧的 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;

有没有人发现类似的错误?请帮助如何解决这个问题,谢谢。


答案 1

它肯定引用了API 21版本4支持库,如果您在事务上设置了任何动画,并且ObjectAnimator更改了它,也从R.anim中引用您的动画,否则它将通过并出错。


答案 2

在前几天,我也遇到了这种错误,然后我尝试使用API 22而不是android.support.v4.app.FragmentTransition来兼容v7应用程序。

你试试这个,

import android.app.FragmentTransaction;

有代码截图。

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

推荐