FragmentManager:在动画类中找不到名称为mListener的字段 [英] FragmentManager: No field with the name mListener is found in Animation class

查看:41
本文介绍了FragmentManager:在动画类中找不到名称为mListener的字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从我的 FragmentManager 分离(删除) Fragment 时出现错误.

I got error when detaching (removing) a Fragment from my FragmentManager.

分离:

public void onFragmentDetached(String tag) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment fragment = fragmentManager.findFragmentByTag(tag);
        if (fragment != null) {
            fragmentManager
                    .beginTransaction()
                    .disallowAddToBackStack()
                    .setCustomAnimations(R.anim.slide_left, R.anim.slide_right)
                    .remove(fragment)
                    .commitNow();
            unlockDrawer();
        }
}

附加:

getSupportFragmentManager()
                .beginTransaction()
                .disallowAddToBackStack()
                .setCustomAnimations(R.anim.slide_left, R.anim.slide_right)
                .replace(R.id.mainRootView, settingsFragment, SettingsFragment.TAG)
                .commit();

这是我的错误:

E/FragmentManager: No field with the name mListener is found in Animation class
    java.lang.NoSuchFieldException: No field mListener in class Landroid/view/animation/Animation; (declaration of 'android.view.animation.Animation' appears in /system/framework/framework.jar!classes3.dex)
        at java.lang.Class.getDeclaredField(Native Method)
        at androidx.fragment.app.FragmentManagerImpl.getAnimationListener(FragmentManager.java:1301)
        at androidx.fragment.app.FragmentManagerImpl.animateRemoveFragment(FragmentManager.java:1638)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1548)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:797)
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
        at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:2243)
        at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:648)
        at com.fearefull.todoreminder.ui.main.MainActivity.onFragmentDetached(MainActivity.java:148)
        at com.fearefull.todoreminder.ui.settings.SettingsFragment.goBack(SettingsFragment.java:71)
        at com.fearefull.todoreminder.ui.settings.SettingsViewModel.onNavigationBackClick(SettingsViewModel.java:23)
        at com.fearefull.todoreminder.databinding.FragmentSettingsBindingImpl._internalCallbackOnClick(FragmentSettingsBindingImpl.java:188)
        at com.fearefull.todoreminder.generated.callback.OnClickListener.onClick(OnClickListener.java:11)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3400(View.java:801)
        at android.view.View$PerformClick.run(View.java:27301)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7319)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)

我正在使用SDK版本29,该如何解决?

I'm using SDK version 29, How can I fix this?

推荐答案

此错误已在androidx.fragment 的较新版本中修复.google.com/issues/139349998"rel =" nofollow noreferrer>错误报告是由于存在问题而做出的.

This bug has been fixed in newer versions of androidx.fragment as mentioned in bug report someone made due to existing issue.

这篇关于FragmentManager:在动画类中找不到名称为mListener的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆