尝试调用虚拟方法';int java.util.Random.nextInt(int)和#x27;关于空对象引用
我的问题是:。但我已经用Random实例化了随机变量,但它仍然不起作用。有人知道为什么吗尝试调用虚拟方法';int java.util.Random.nextInt(int)和#x27;关于空对象引用,java,android,random,Java,Android,Random,我的问题是:。但我已经用Random实例化了随机变量,但它仍然不起作用。有人知道为什么吗 . . . import java.util.Random; public class game_page extends AppCompatActivity { private TextView gameProblem; private int leftNumber; private int rightNumber; private EditText solution;
.
.
.
import java.util.Random;
public class game_page extends AppCompatActivity {
private TextView gameProblem;
private int leftNumber;
private int rightNumber;
private EditText solution;
private String operator;
private int sum;
private Random r = new Random();
private int difficulty;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_page);
gameProblem = (TextView)findViewById(R.id.game_problem);
solution = (EditText)findViewById(R.id.solution);
setDifficulty();
newProblem();
}
//1 = easy
private void setDifficulty() {
this.difficulty = 1;
}
private void newProblem() {
if(difficulty == 1){
leftNumber = r.nextInt(0) + 10;
rightNumber = r.nextInt(0) + 10;
operator = "+";
sum = Integer.parseInt(leftNumber + operator + rightNumber);
gameProblem.setText(leftNumber + operator + rightNumber + "=");
}
}
}
Stacktrace(按要求):
10-09 21:46:51.793 4867-4867/benlab.app1ben E/AndroidRuntime: FATAL EXCEPTION: main
Process: benlab.app1ben, PID: 4867
java.lang.RuntimeException: Unable to start activity ComponentInfo{benlab.app1ben/benlab.app1ben.game_page}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.Random.nextInt()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.Random.nextInt()' on a null object reference
at benlab.app1ben.game_page.newProblem(game_page.java:47)
at benlab.app1ben.game_page.onCreate(game_page.java:33)
at android.app.Activity.performCreate(Activity.java:6285)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Stacktrace。你确定错误在这个类中吗?提示:无论你做什么,sum=Integer.parseInt(leftNumber+运算符+rightNumber);无论如何都不行。你只能解析数字,不能解析像“1+2”这样的表达式!我能看到这种情况发生的唯一方法是,如果其他东西正在将
r
设置为null。将字段设置为“最终”,查看编译器抱怨的地方。@PresidentCamacho。