ОШИБКА: "E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: главная" - PullRequest
0 голосов
/ 21 апреля 2020

Я получаю эту ошибку на главном экране активности, когда я запускаю это действие, это приводит к сбою моего приложения.

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;
    }



}

1 Ответ

0 голосов
/ 21 апреля 2020

ваш cra * sh из-за исключения NullPointerException в строке 52 внутри метода OnCreate: (возможно, одного из них) Блок Catch, который может обрабатывать несколько исключений:

try{
  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();
}
catch (NullPointerException e) {
  Log.e("Class name goes here", "NPE occured at " + e);
}
catch (Exception e) {
  Log.e("Class name goes here", "Exception occured at " + e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...