当前位置: 首页 > 知识库问答 >
问题:

找不到片段构造函数-在某些prod用户(但不是所有用户)上初始化时片段崩溃

东方灵均
2023-03-14

我有一个简单的片段,如下所示。

class GradesFragment : Fragment(R.layout.fragment_grades) {

   ...

    companion object {

        @JvmStatic
        fun newInstance() = GradesFragment()
    }
}

我将这个片段添加到MainActivity中,如下所示。

class MainActivity : AppCompatActivity(R.layout.activity_main) {

    supportFragmentManager.beginTransaction()
        .replace(R.id.frameLayout, GradesFragment.newInstance())
        .addToBackStack("tagMainFragment")
        .commit()

}

当我在prod和debug中测试我的应用程序时,没有崩溃。然而,我的应用程序在prod用户中崩溃,firebase crashlytics显示了许多错误。没有特定设备或特定版本。许多Android版本和设备都面临着这种崩溃。

它显示以下错误:androidx.fragment.app.片段$d:无法实例化片段com.xxx.yyy.d. b:找不到片段构造函数

为了能够使用片段和活动构造函数,我应该向proguard文件添加一些东西吗?我错过了什么?为什么一些用户面临崩溃,而另一些用户没有面临崩溃?

共有2个答案

齐夕
2023-03-14

实际上,它崩溃了,因为方向的改变会重建碎片。如果RAM较低,并且用户收到呼叫,则可能会重新生成片段,迫使Android销毁您的片段,稍后重新生成。

更改此行:

class GradesFragment : Fragment(R.layout.fragment_grades)

到此:

class GradesFragment : Fragment()

<代码>R.layout。碎片等级应在其他地方访问。一种常见的使用方法是

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
    return inflater.inflate(R.layout.fragment_grades, container, false)
}
翟永春
2023-03-14

我发现当设备方向改变时会发生崩溃。我强制我的活动为纵向方向,这解决了崩溃问题。我找不到更好的解决方案

 类似资料:
  • 我在一些设备上面临这个问题,并在崩溃分析中出错。很多用户设备都面临这个问题,但在我的设备上运行良好。 无法启动活动ComponentInfo{com.ox.outloks.new/com.ox.outloks.new.activities.maindraweractivity}:Android.support.v4.app.fragment$instantiationexception:无法实例化

  • 我试图调用一个片段,但有时会收到以下错误,即使我的片段中有空构造函数 作为

  • 我在一些设备上遇到了这个问题,并且在我的崩溃分析中出现了一个错误。当应用程序遇到ANR故障并且错误为 无法启动activity ComponentInfo{com.qwykr.dryver.base/com.qwykr.dryver.base.activities.MainActivity}:Android.support.v4.app.fragment$InstantiationExceptio

  • 当创建一个流行的片段时,我得到一个空的构造函数错误。 请看看我写的代码,创建碎片时如何传递数据?

  • 我有以下错误。我在DailyVerseFrament上添加了构造函数。但它仍然不起作用。我有这个问题超过一个星期了。

  • 当旋转手机或更改为深色模式(当我的活动重新创建时)时,用户将面临无法找到片段构造函数等问题。 无法启动活动组件信息{e.Quran.Qaz/e.Quran.Qaz.ui.Zhuz.QuranByPage}:androidx。碎片应用程序。片段$InstantiationException:无法实例化片段e.Quran。Qaz。用户界面。朱。PageFragment:找不到片段构造函数 在我的项目中