Android 我总是得到一个空指针

Android 我总是得到一个空指针,android,Android,以下是所有错误消息: java.lang.RuntimeException: Unable to start activity ComponentInfo{johnny.newopen/johnny.newopen.easy}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference

以下是所有错误消息:

java.lang.RuntimeException: Unable to start activity ComponentInfo{johnny.newopen/johnny.newopen.easy}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                            at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                            at android.os.Looper.loop(Looper.java:148)
                                                            at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                            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 'void android.widget.TextView.setText(int)' on a null object reference
                                                            at johnny.newopen.easy.onCreate(easy.java:126)
                                                            at android.app.Activity.performCreate(Activity.java:6237)
                                                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                            at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                            at android.os.Looper.loop(Looper.java:148) 
                                                            at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                            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) 
以下是相关代码:

public class easy extends AppCompatActivity
{
 Button solve;
 private Chronometer chronometer;
 TextView plus1, plus2, minus1, minus2, multy1, multy2, points;
 int p1, p2, m1, m2, mu1, mu2, p, p_ans, m_ans, mu_ans;
 long time;
 private DBHelper mydb;
 boolean check, check1, check2, check3, check4;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_easy);
    mydb = new DBHelper(this);

 if (check1 && check2 && check3) {

        p = p + 60 - (int) time;
    }
    mydb.insertPoints(p);
    points = (TextView)findViewById(R.id.points);
    int x;
    try {
        {x = mydb.getPoints();}
    }
    catch (Exception e) {x=0;}
    points.setText(x);
}
}

我总是得到一个空指针来表示点。我做错了什么?

设置文本时,您的文本视图似乎为空。查看您的代码(尚未完成),整数x尚未初始化。在设置x=0后尝试运行应用程序,同时尝试检查textView的id
此外,您不能将整数值设置为textview,请使用
String.valueOf()

如下所示:
points.setText(String.valueOf(x))


对不起,答案的格式不正确;稍后我会修复它。

检查版面中
TextView
的Id是否与活动“(点)”中提到的相同。此外,不能将整数值设置为
TextView
直接使用
String.valueOf()


可以使用x.toString()设置“点”的文本值。但是您应该首先检查它是否存在,因为我认为您为TextView获取了错误的id。

嘿,您不能直接将int设置为TextView

简单地做

points.setText(""+x);
它将避免空指针。

或者正如阿努吉·库马尔所说,你可以


**points.setText(String.valueOf(x))**

请分享错误消息(logcat输出)也请用大写字母写类名
easy
也请扩展代码以包含周围函数(可能在创建时)和
setContentView()
和相应的布局。是
还是
mydb
为空?根据您的日志,也是@Yonatan Rotem;错误在activityx的第126行。如果是int,则不能为null
points.setText(""+x);