0

日志猫:

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.Decra/com.Decra.DecRaActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)

代码:

    TextView dectv=(TextView)findViewById(R.id.dec);
    TextView ratv=(TextView)findViewById(R.id.ra);
    TextView result=(TextView)findViewById(R.id.result);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn=new Button(this);
        btn.setOnClickListener(this);
    }

启动应用程序时,它会强制关闭并出现以下错误:

the application DecRa (process com.Decra) has stopped unexpectedly.Please try again.

而且编译器没有错误,所以一定是运行时错误。但我不明白错误是什么意思!我的理解是其中一个错误是指findViewById.

4

1 回答 1

1

findViewById()如果你setContentView()事先没有打电话,你就不能打电话。只需将 TextView 初始化行移到onCreate()方法中,如下所示:

TextView dectv;
TextView ratv;
TextView result;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        dectv=(TextView)findViewById(R.id.dec);
        ratv=(TextView)findViewById(R.id.ra);
        result=(TextView)findViewById(R.id.result);

        ...
        ...
    }
于 2012-05-30T15:11:55.560 回答