Java 当我完成测验应用程序的工作时,我的应用程序停止了

Java 当我完成测验应用程序的工作时,我的应用程序停止了,java,android,nullpointerexception,Java,Android,Nullpointerexception,当我完成测验应用程序时,我的应用程序停止了。我正在学习使用MySQL数据库进行Android应用程序测试,但当最后一个问题移动到评分页面时,我遇到了问题 10-28 01:02:25.816 31874-31874/com.example.nuvo.myapplication E/AndroidRuntime:致命异常:主 进程:com.example.nuvo.myapplication,PID:31874 java.lang.RuntimeException:无法启动活动 Component

当我完成测验应用程序时,我的应用程序停止了。我正在学习使用MySQL数据库进行Android应用程序测试,但当最后一个问题移动到评分页面时,我遇到了问题

10-28 01:02:25.816 31874-31874/com.example.nuvo.myapplication E/AndroidRuntime:致命异常:主 进程:com.example.nuvo.myapplication,PID:31874 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.nuvo.myapplication/com.example.nuvo.myapplication.Complete}: java.lang.NullPointerException 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 在android.app.ActivityThread.access$800(ActivityThread.java:166) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5584) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.NullPointerException 在 com.example.nuvo.myapplication.Complete.onCreate(Complete.java:18) 位于android.app.Activity.performCreate(Activity.java:5442) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 在android.app.ActivityThread.access$800(ActivityThread.java:166) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5584) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 在dalvik.system.NativeStart.main(本机方法)

complete.java

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class Complete extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_complete);
        int score = getIntent().getExtras().getInt("score");


        AlertDialog.Builder builder = new AlertDialog.Builder(Complete.this);
        builder.setTitle("Quiz Complete");
        builder.setMessage("Your Score is: " +score+ " out of 10");
        builder.show();


        builder.setPositiveButton("Play Again", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
                Intent intent = new Intent(Complete.this, QuizActivity.class);
                startActivity(intent);

            }
        });

        builder.setNegativeButton("Done", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog alert = builder.create();
        alert.show();

    }
    public void restartQuiz(View view)
    {
        Intent intent = new Intent(Complete.this, QuizActivity.class);
        startActivity(intent);
    }
    public void mainMenu(View view)
    {
        Intent intent = new Intent(Complete.this, MainActivity.class);
        startActivity(intent);
    }

}
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class Complete extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_complete);
        int score = getIntent().getExtras().getInt("score");


        AlertDialog.Builder builder = new AlertDialog.Builder(Complete.this);
        builder.setTitle("Quiz Complete");
        builder.setMessage("Your Score is: " +score+ " out of 10");
        builder.show();


        builder.setPositiveButton("Play Again", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
                Intent intent = new Intent(Complete.this, QuizActivity.class);
                startActivity(intent);

            }
        });

        builder.setNegativeButton("Done", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog alert = builder.create();
        alert.show();

    }
    public void restartQuiz(View view)
    {
        Intent intent = new Intent(Complete.this, QuizActivity.class);
        startActivity(intent);
    }
    public void mainMenu(View view)
    {
        Intent intent = new Intent(Complete.this, MainActivity.class);
        startActivity(intent);
    }

}
QuizActivity.java

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class Complete extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_complete);
        int score = getIntent().getExtras().getInt("score");


        AlertDialog.Builder builder = new AlertDialog.Builder(Complete.this);
        builder.setTitle("Quiz Complete");
        builder.setMessage("Your Score is: " +score+ " out of 10");
        builder.show();


        builder.setPositiveButton("Play Again", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
                Intent intent = new Intent(Complete.this, QuizActivity.class);
                startActivity(intent);

            }
        });

        builder.setNegativeButton("Done", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog alert = builder.create();
        alert.show();

    }
    public void restartQuiz(View view)
    {
        Intent intent = new Intent(Complete.this, QuizActivity.class);
        startActivity(intent);
    }
    public void mainMenu(View view)
    {
        Intent intent = new Intent(Complete.this, MainActivity.class);
        startActivity(intent);
    }

}
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class Complete extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_complete);
        int score = getIntent().getExtras().getInt("score");


        AlertDialog.Builder builder = new AlertDialog.Builder(Complete.this);
        builder.setTitle("Quiz Complete");
        builder.setMessage("Your Score is: " +score+ " out of 10");
        builder.show();


        builder.setPositiveButton("Play Again", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
                Intent intent = new Intent(Complete.this, QuizActivity.class);
                startActivity(intent);

            }
        });

        builder.setNegativeButton("Done", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog alert = builder.create();
        alert.show();

    }
    public void restartQuiz(View view)
    {
        Intent intent = new Intent(Complete.this, QuizActivity.class);
        startActivity(intent);
    }
    public void mainMenu(View view)
    {
        Intent intent = new Intent(Complete.this, MainActivity.class);
        startActivity(intent);
    }

}

这一行在您的代码中有问题:

int score = getIntent().getExtras().getInt("score");
似乎打开完整活动的意图没有整数“分数”,因此返回null,这导致了NullPointerException。为了避免这样的问题,考虑使用另一个方法GETint(String Kekey,int Debug值).a.
int score = getIntent().getExtras().getInt("score", 0);

这样,如果您的意图到达时没有值,您将不会得到异常,但默认情况下它将设置为0。

我尝试过,但仍然有相同的错误@塞尔杰·阿多维奇