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.
请确保您已在activity_main.xml文件中使用'add'ID。可以共享activity_main.xml文件