Java ID未引用此活动内的视图

Java ID未引用此活动内的视图,java,Java,我的主活动代码中不断出现非法argumentException,请帮助我!错误显示在该行上 NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); 我试图将二维码阅读器添加到主活动中,但当我这样做时,出现了这个错误 public class MainActivity extends AppCompatActivity { private AppBarCo

我的主活动代码中不断出现非法argumentException,请帮助我!错误显示在该行上

    NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
我试图将二维码阅读器添加到主活动中,但当我这样做时,出现了这个错误

public class MainActivity extends AppCompatActivity {

    private AppBarConfiguration mAppBarConfiguration;
    private SharedPreferences appData;
    private Button scan_button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_scan);
        scan_button = (Button) findViewById(R.id.btnScan);
        final Activity activity = this;
        scan_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                IntentIntegrator integrator = new IntentIntegrator(activity);
                integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
                integrator.setPrompt("Scan");
                integrator.setCameraId(0);
                integrator.setBeepEnabled(false);
                integrator.setBarcodeImageEnabled(false);
                integrator.initiateScan();
            }
        });

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        /*FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
         */

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_transaction, R.id.nav_qrcode,
                R.id.nav_login, R.id.nav_logout, R.id.nav_signup, R.id.nav_rewards, R.id.nav_scan)
                .setDrawerLayout(drawer)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);

        appData = getSharedPreferences("appData", this.MODE_PRIVATE);
        SharedPreferences.Editor editor = appData.edit();
        editor.putFloat("Point", 0);
        //editor.putBoolean("SAVE_LOGIN_DATA", checkBox.isChecked());
        editor.putString("ID", "");
        editor.putString("PWD", "");
        editor.apply();

        //Navigation.findNavController(navigationView).navigate(R.id.nav_login);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onSupportNavigateUp() {
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        return NavigationUI.navigateUp(navController, mAppBarConfiguration)
                || super.onSupportNavigateUp();
    }

    public boolean onChangeMenuItem() {
        NavigationView navigationView = findViewById(R.id.nav_view);
        Menu menu = navigationView.getMenu();
        MenuItem nav_dashboard = menu.findItem(R.id.nav_login);
        nav_dashboard.setVisible(false);

        return true;
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (result != null) {
            if (result.getContents() == null) {
                Toast.makeText(this, "You Cancelled the Scan", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, result.getContents(), Toast.LENGTH_LONG).show();
                String scanResult = data.getStringExtra("SCAN_RESULT");
                int pointsAdded = Integer.parseInt(scanResult);
            }
        }
        else {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
}

找到解决办法了吗?找到解决办法了吗?