Мое приложение вылетает, даже если при его создании не было ошибок [duplicate]

1

При нажатии кнопки "Сохранить" приложение перестало работать.
Пожалуйста, помогите мне с этим вопросом.

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_info);

    ref = FirebaseDatabase.getInstance().getReference().child("Member");

    btnSave.setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View view) {
                member.setUserName(name1.getText().toString().trim());
                member.setFirstName(name2.getText().toString().trim());
                member.setLastName(name3.getText().toString().trim());
                member.setEmail(name4.getText().toString().trim());
                ref.push().setValue("member");
                Toast.makeText(LoginInfo.this,"data Inserted Sucessfully",Toast.LENGTH_LONG).show();
            }
        });

Ошибка журнала

E/AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.firebasesign, PID: 20460 java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.example.firebasesign/com.example.firebasesign.LoginInfo}: java.lang. NullPointerException: попытка вызвать виртуальный метод "void android.view.View.setOnClickListener(android.view.View $ OnClickListener)" для ссылки на пустой объект в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) на android.app.ActivityThread. -wrap12 (ActivityThread.java) на android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1473) на android.os.Handler. dispatchMessage (Handler.java:102) в android.os.Looper.loop(Looper.java:154) в android.app.ActivityThread.main(ActivityThread.java:6123) в java.lang.reflect.Method.invoke (родной Method) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867) в com.android.internal.os.ZygoteIni t.main(ZygoteInit.java:757) Причина: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'void android.view.View.setOnClickListener(android.view.View $ OnClickListener)' для ссылки на пустой объект в com.example.firebasesign.LoginInfo.onCreate(LoginInfo.java:34) на android.app.Activity.performCreate(Activity.java:6672) на android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140) на android.app. ActivityThread.performLaunchActivity(ActivityThread.java:2612) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) в android.app.ActivityThread. -wrap12 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1473) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loop(Looper.java:154) в android.app.ActivityThread.main(ActivityThread.java: 6123) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867) в com.an droid.internal.os.ZygoteInit.main(ZygoteInit.java:757)

Теги:

1 ответ

0

На основании вашего журнала объект btnSave является нулевым. Вам нужно будет получить ссылку на объект, вызвав findViewById перед попыткой setOnClickListener()

 btnSave = findViewById(R.id.yourButtonId)

Где yourButtonId - это идентификатор, который вы задали для элемента xml

 <Button
        android:id="@+id/yourButtonId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

Если вы используете нож для масла, не забудьте добавить

  ButterKnife.bind(this);

в ваш метод onCreate()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню