应用程序停止工作Android



我不明白为什么我的"应用"停止工作?

这是我的MainActivity.Class代码: -

package com.apps.nishant.iwillguessyournumber;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    private Button btnplay = (Button)findViewById(R.id.cmdPlay);
    private Button btnexit = (Button)findViewById(R.id.cmdExit);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OnButtonClickListener();
    }
    public void OnButtonClickListener() {
        btnplay.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }
        );
        btnexit.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);
                        adb.setMessage("Do you really wanna exit?")
                                .setCancelable(false)
                                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        finish();
                                    }
                                })
                                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.cancel();
                                    }
                                });
                    }
                }
        );
    }
}

和我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.apps.nishant.iwillguessyournumber.MainActivity">
    <Button
        android:id="@+id/cmdPlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Play"
        tools:layout_editor_absoluteX="147dp"
        tools:layout_editor_absoluteY="219dp" />
    <Button
        android:id="@+id/cmdExit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Exit"
        tools:layout_editor_absoluteX="147dp"
        tools:layout_editor_absoluteY="328dp" />
</android.support.constraint.ConstraintLayout>

每当我在genymotion Android上运行此应用:6.0.0和API 23时,它显示"不幸的是,(App Name)无法正常工作"

我的代码/平台有什么问题?

我尝试重新启动我的应用程序,查找了一些问题,但是当我使用意图打开新活动时,我无法得到答案,第二个活动无法解析XML文件。

应用程序崩溃的来源是以下2行,

private Button btnplay = (Button)findViewById(R.id.cmdPlay);
private Button btnexit = (Button)findViewById(R.id.cmdExit);

在setContentView()之后,应在ongreate()内调用方法findviewbyid()。以下代码应起作用,

package com.apps.nishant.iwillguessyournumber;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    private Button btnplay;
    private Button btnexit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnplay = (Button)findViewById(R.id.cmdPlay);
        btnexit = (Button)findViewById(R.id.cmdExit);
        OnButtonClickListener();
    }
    public void OnButtonClickListener() {
        btnplay.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }
        );
        btnexit.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);
                        adb.setMessage("Do you really wanna exit?")
                                .setCancelable(false)
                                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        finish();
                                    }
                                })
                                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.cancel();
                                    }
                                });
                    }
                }
        );
    }
}

最新更新