android - View null 没有设置 NavController
问题描述
我有一些关于Firebase Crashlytics
以下崩溃的报告,
Fatal Exception: java.lang.IllegalStateException: View null does not have a NavController set
at androidx.navigation.Navigation.findNavController(Navigation.java:84)
at com.***.splash.SplashFragment.lambda$checkLoggedInStatus$1$SplashFragment(SplashFragment.java:xxx)
at com.***.splash.-$$Lambda$SplashFragment$VafildstAQkrvymiO-AhxCqBHIE.run(lambda)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
这是我的SplashFragment
public class SplashFragment extends DaggerFragment {
...
private View view;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_splash, container, false);
...
return view;
}
@Override
public void onResume() {
super.onResume();
checkLoggedInStatus();
}
private void checkLoggedInStatus() {
if (!splashViewModel.isLoggedIn()) {
new Handler().postDelayed(() - >
Navigation
.findNavController(view) // line xxx
.navigate(R.id.action_splashFragment_to_loginFragment), 1500);
} else {...}
}
...
@Override
public void onDestroy() {
view = null;
super.onDestroy();
}
}
我的模拟器甚至在真实设备中都没有遇到这个问题,DEBUG
并且RELEASE
构建类型。所以我很难追踪它。这发生在1.75%
现场用户周围。所以我的问题是,
怎么
view
变成null
只有几个用户的?
有人可以建议解决这个问题吗?
解决方案
推荐阅读
- python - Python CSV - 双双引号被写入 CSV 文件?
- python - Python中的测验游戏循环
- wordpress - WordPress 随机数
- c - 如何将十进制打印成 32 位二进制,将其分隔为 8 位
- c - 如何修复此代码以使用指针检查数字是否为回文?
- ubuntu - 如何在 Ubuntu 上使用命令行工具在两个视频之间平滑且重复地过渡?
- python - 如何将数据框从列上的特定值一分为二
- python - 迭代索引子集效率
- linux - 第一个 Bash 文件中的错误
- python - (pyqt5) 如何设置 QPrinter.setMargins(self, QPagedPaintDevice.Margins) 的值?