Я получаю эту ошибку на главном экране активности, когда я запускаю это действие, это приводит к сбою моего приложения.
E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.noidea, PID: 24739 java. lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.noidea / com.noidea.MainActivity}: java .lang.NullPointerException: попытка вызвать виртуальный метод 'java .lang.String java .lang.Object. toString () 'для ссылки на пустой объект в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 3760) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3939) в android .app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem. java: 91) в android .app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor. java: 149) в android .app.servertransaction.TransactionExecutor. выполнить (TransactionExecutor. java: 103) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 2373) в android .os.Handler.dispatchMessage (Обработчик. * 1024) *: 107) в android .os.Looper.l oop (Looper. java: 213) в android .app.ActivityThread.main (ActivityThread. java: 8147) в java. lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 513) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 1101) Причина: java .lang.NullPointerException: Попытка вызвать виртуальный метод 'java .lang.String java .lang.Object.toString ()' для ссылки на пустой объект в com.noidea.MainActivity.onCreate (MainActivity. java: 52) в android .app.Activity.performCreate (Activity. java: 8066) в android .app.Activity.performCreate (Activity. java: 8054) в android .app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1313) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 3733) в android .app. ActivityThread.handleLaunchActivity (ActivityThread. java: 3939) в android .app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem. java: 91) в android .app.server action.TransactionExecutor.executeCallbacks (TransactionExecutor. java: 149) в android .app.servertransaction.TransactionExecutor.execute (TransactionExecutor. java: 103) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 2373) в android .os.Handler.dispatchMessage (Обработчик. java: 107) в android .os.Looper.l oop (Looper. java: 213) в android .app.ActivityThread.main (ActivityThread. java: 8147) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit . java: 513) at com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 1101)
ЭТО МОЙ КОД ОБСЛУЖИВАНИЯ. Если кто-то может найти причину ошибки, ответ на нее будет очень признателен
com.noidea;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
//fetching ids
EditText Fullname_reg = findViewById(R.id.Firstnameid);
EditText Username_reg = findViewById(R.id.Usernameid);
EditText Email_reg = findViewById(R.id.Emailid);
EditText Password_reg = findViewById(R.id.Passwordid);
EditText RePass_reg = findViewById(R.id.repasswordid);
Spinner Month_reg = findViewById(R.id.monthid);
Spinner Date_reg = findViewById(R.id.dayid);
Spinner Year_reg = findViewById(R.id.yearid);
RadioGroup Gender_reg = findViewById(R.id.genderid);
CheckBox Terms_reg = findViewById(R.id.agreementid);
Button Register_reg = findViewById(R.id.reg_butid);
//making String objects for entered data
final String Fullname , Username, Email ,Password, Repassword, Month, Date, Year, Gender;
//fetching entered data
Fullname = Fullname_reg.getText().toString();
Username = Username_reg.getText().toString();
Email= Email_reg.getText().toString();
Password = Password_reg.getText().toString();
Repassword = RePass_reg.getText().toString();
Month = Month_reg.getSelectedItem().toString();
Date = Date_reg.getSelectedItem().toString();
Year = Year_reg.getSelectedItem().toString();
//calling the spinner method
spinner_med();
//fetching ids from the fetch method
//String[] Credentials = fetch();
//Fullname = Credentials[0];
//Username = Credentials[1];
//Email = Credentials[2];
//Password = Credentials[3];
//Repassword = Credentials[4];
//Month = Credentials[5];
//Date = Credentials[6];
//Year = Credentials[7];
//Gender = Credentials[8];
Register_reg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean full_name = Fullname_check(Fullname);
//proceeds to next check if fullname is valid
if (full_name){
boolean username = Username_check(Username);
//proceeds to next check if username is valid
if (username){
boolean email = Email_check(Email);
//proceeds to next check if email is valid
if (email){
boolean password = Password_check(Password);
//proceed to next check if password is valid
if (password){
boolean repassword = Repassword_check(Repassword, Password);
//proceed to next check if repassword is valid
if (repassword) {
Toast Registered = Toast.makeText(MainActivity.this, "Validity check pass", Toast.LENGTH_LONG);
Registered.show();
}
}
}
}
}
}
});
}
public void spinner_med(){
//declaring spinners and array adapters
Spinner spinner_days, spinner_month, spinner_years, spinner_genders;
ArrayAdapter<String> adapter_day, adapter_month, adapter_year, adapter_gender;
//month spinner
spinner_month = findViewById(R.id.monthid);
adapter_month = new ArrayAdapter<>(
this,
R.layout.custom_spinner,
getResources().getStringArray(R.array.Months)
);
adapter_month.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_month.setAdapter(adapter_month);
//days spinner
ArrayList<String> days = new ArrayList<>();
days.add("Day");
for (int d = 1; d <= 31; d++){
String day = String.valueOf(d);
days.add(day);
}
spinner_days = findViewById(R.id.dayid);
adapter_day = new ArrayAdapter<String>(
this,
R.layout.custom_spinner,
days
);
adapter_day.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_days.setAdapter(adapter_day);
//years spinner
ArrayList<String> years = new ArrayList<>();
years.add("Year");
for (int y = 1980; y<=2020; y++){
String year = String.valueOf(y);
years.add(year);
}
spinner_years = findViewById(R.id.yearid);
adapter_year = new ArrayAdapter<String>(
this,
R.layout.custom_spinner,
years
);
adapter_year.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_years.setAdapter(adapter_year);
}
public void back(View v){
Intent back = new Intent(this, lginscreen.class);
startActivity(back);
}
//public String[] fetch(){
//making String objects for entered data
//String Fullname;
//String Username;
//String Email;
//String Password;
//String Repassword;
//String Month;
//String Date;
//String Year;
//RadioButton Gen;
//fetching radio Button data
//int selectedgen = Gender_reg.getCheckedRadioButtonId();
//Gen = (RadioButton) findViewById(selectedgen);
//String Gender = Gen.getText().toString();
//String[] Cred = {Fullname, Username, Email ,Password, Repassword, Month, Date, Year, Gender};
//return Cred;
//}
//fullname check
public boolean Fullname_check(String Fullname){
int verification;
Pattern Fullname_pattern = Pattern.compile("[^a-z] ", Pattern.CASE_INSENSITIVE);
Matcher Fullname_matcher = Fullname_pattern.matcher(Fullname);
boolean checked_fullname = Fullname_matcher.matches();
if (checked_fullname)
return true;
else
return false;
}
//username check
public boolean Username_check(String Username){
Pattern Username_pattern = Pattern.compile("[^a-z0-9_#.-]", Pattern.CASE_INSENSITIVE);
Matcher Username_matcher = Username_pattern.matcher(Username);
boolean checked_username = Username_matcher.matches();
if (checked_username)
return true;
else
return false;
}
//email check
public boolean Email_check(String Email){
String email_regex = "[a-zA-Z0-9._-]+@[a-z]+\\.[a-z]+";
Pattern email_pattern = Pattern.compile(email_regex);
Matcher email_matcher = email_pattern.matcher(Email);
boolean checked_email = email_matcher.matches();
if (checked_email)
return true;
else
return false;
}
//password check
public boolean Password_check(String Password){
Pattern password_pattern = Pattern.compile("[a-zA-Z0-9_.!#-]+"), num_pattern = Pattern.compile("[0-9]");
Matcher password_match = password_pattern.matcher(Password);
boolean checked_password = password_match.matches();
if (checked_password)
return true;
else
return false;
}
//repassword check
public boolean Repassword_check(String Repassword, String Password){
if (Repassword.equals(Password))
return true;
else
return false;
}
}