我在android studio的运行区域中有很多错误

问题描述 投票:0回答:1
I am trying to create an app but i keep on getting errors that I haven't even touched.

I looked for all possible errors in the code I wrote but couldn't find any.

/// code i wrote

package com.example.save_dollars_finalcopy;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;

public class MainActivity extends AppCompatActivity {

    TextView ExpensesYearTotal, ExpensesTotal, ExpensesWeekTotal, ExpensesMonthTotal, Total;
    EditText ExpensesWeek, ExpensesMonth, ExpensesYear, ExpensesDay;
    Button add;

    float TotalOfE;
    int num1, num2, num3, num4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomNavigationView navView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_dashboard, R.id.navigation_home, R.id.navigation_notifications)
                .build();

        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
        NavigationUI.setupWithNavController(navView, navController);


        ExpensesMonthTotal = (TextView) findViewById(R.id.ExpensesMonthTotal);
        ExpensesTotal = (TextView)findViewById(R.id.ExpensesTotal);
        ExpensesYearTotal = (TextView)findViewById(R.id.ExpensesYearTotal);
        ExpensesWeekTotal = (TextView)findViewById(R.id.ExpensesWeekTotal);
        Total = (TextView)findViewById(R.id.Total);

        ExpensesWeek = (EditText)findViewById(R.id.ExpensesWeek);
        ExpensesMonth = (EditText)findViewById(R.id.ExpensesMonth);
        ExpensesYear = (EditText)findViewById(R.id.ExpensesYear);
        ExpensesDay = (EditText)findViewById(R.id.ExpensesDay);

        add = (Button)findViewById(R.id.add);

        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                num1 = Integer.parseInt(ExpensesMonth.getText().toString());
                num2 = Integer.parseInt(ExpensesYear.getText().toString());
                num3 = Integer.parseInt(ExpensesDay.getText().toString());
                num4 = Integer.parseInt(ExpensesWeek.getText().toString());

                TotalOfE = num1 - num2 - num3 - num4;

                ExpensesTotal.setText(String.valueOf(TotalOfE));

            }
        });







    }

}

/// Android Studio的“运行”部分以及弹出的错误

E / AndroidRuntime:致命异常:主要流程:com.example.save_dollars_finalcopy,PID:31989java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.save_dollars_finalcopy / com.example.save_dollars_finalcopy.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.Button.setOnClickListener(android。 view.View $ OnClickListener)'上的空对象引用在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:193)在android.app.ActivityThread.main(ActivityThread.java:6669)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'在com.example.save_dollars_finalcopy.MainActivity.onCreate(MainActivity.java:55)在android.app.Activity.performCreate(Activity.java:7136)在android.app.Activity.performCreate(Activity.java:7127)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:193)在android.app.ActivityThread.main(ActivityThread.java:6669)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)。

I expected the code to work.
android-studio android-studio-3.0
1个回答
0
投票

请确保您已在activity_main.xml文件中使用'add'ID。可以共享activity_main.xml文件

© www.soinside.com 2019 - 2024. All rights reserved.