即使构建应用时没有错误,我的应用也会崩溃

时间:2019-04-18 17:09:06

标签: java android

在按钮保存中,我的应用程序崩溃了。
请帮我解决这个问题。

 @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 / Android运行时:致命异常:主要       流程: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(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867)           在com.android.internal.os.ZygoteInit.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.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

1 个答案:

答案 0 :(得分:0)

根据您的日志,var verifyError = socket._handle.verifyError(); 对象为空。在尝试设置setOnClickListener()之前,您需要通过调用findViewById获得对该对象的引用。

btnSave

其中yourButtonId是您在xml项目上设置的ID

 btnSave = findViewById(R.id.yourButtonId)

如果您使用的是黄油刀,请不要忘记添加

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

到您的onCreate()方法