【问题标题】:FragmentManager incompatible types for support libraries支持库的 FragmentManager 类型不兼容
【发布时间】:2020-05-28 00:21:31
【问题描述】:

获取不兼容类型的 FragmentManager 的持续错误。需要支持库才能工作,但无法弄清楚。 Android Studio 说它需要支持导入,它在那里,但找到了 androidx 导入。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import androidx.appcompat.app.AppCompatActivity;


public class CrimeActivity extends AppCompatActivity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_crime);

        FragmentManager fm = getSupportFragmentManager();
        Fragment fragment = fm.findFragmentById(R.id.fragment_container);

        if(fragment == null)
        {
            fragment = new CrimeFragment();
            fm.beginTransaction()
                    .add(R.id.fragment_container, fragment)
                    .commit();


        }
    }
}```

【问题讨论】:

  • 如果您使用的是 androidx,所有内容都应该来自androidx,而不是android.support。 “Android Studio 说它需要支持导入”到底是什么意思?您收到的错误消息是什么?
  • “需要不兼容的类型:android.support.v4.app.FragmentManager 找到:androidx.fragment.app.FragmentManager”
  • 是的,将这两个 android.support 导入更改为 androidx。如果您只是删除它们,您的 IDE 应该会提示您选择正确的。
  • 是的,事实证明它有效。显然支持库现在毫无意义。
  • 它们基本上只是在版本 28 时变成了 androidx。不过,考虑到自切换以来发生的所有不可避免的升级和变化,大多数东西的工作原理都差不多。

标签: java android android-studio android-fragments fragmentmanager


【解决方案1】:

是的,将这两个 android.support 导入更改为 androidx。如果您只是删除它们,您的 IDE 应该会提示您选择正确的。 – 迈克 M.https://stackoverflow.com/users/2850651/mike-m

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 2017-01-20
    • 1970-01-01
    • 2020-05-29
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    相关资源
    最近更新 更多