Snackbar 未显示,每次我打开应用程序时都会崩溃

Snackbar not showing, the app crashes every time I open it

我试图解决这个错误,但没有成功。 当打开应用程序时,应用程序崩溃并立即停止。 有什么不对的地方吗?

    private void popupSnackBarForCompleteUpdate() {
        Snackbar.make(findViewById(android.R.id.content), "New app is ready!", Snackbar.LENGTH_INDEFINITE)

        .setAction("Install", view -> {
            if (appUpdateManager != null) {
                appUpdateManager.completeUpdate();
            }
        })
        .setActionTextColor(getResources().getColor(R.color.installColor))
        .show();
    }

抛出以下错误:

java.lang.IllegalArgumentException: No suitable parent found from the given view. Please provide a valid view.
        at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:158)

在切换到 android.R.id.content

之前我有以下代码
    private void popupSnackBarForCompleteUpdate() {
        Snackbar snackbar =
                Snackbar.make((CoordinatorLayout) findViewById(R.id.snackbar_layout), "New app is ready!", Snackbar.LENGTH_INDEFINITE);

        snackbar.setAction("Install", view -> {
            if (appUpdateManager != null) {
                appUpdateManager.completeUpdate();
            }
        });
        snackbar.setActionTextColor(getResources().getColor(R.color.installColor));
        snackbar.show();
    }

如果你想为你的 activity 获取根视图,那么你应该使用:- findViewById(android.R.id.content).getRootView()。 (您在这里缺少 getRootView())。

否则你也可以使用 requireView().rootView 它会 return 你的片段的根视图并查看 this 答案以及从你的 activity.