Java 当我完成测验应用程序的工作时,我的应用程序停止了
当我完成测验应用程序时,我的应用程序停止了。我正在学习使用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.javaJava 当我完成测验应用程序的工作时,我的应用程序停止了,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
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。我尝试过,但仍然有相同的错误@塞尔杰·阿多维奇