1

今日は、Java を使用する最初の日です。このエラーの理由がわかりません。

MainActivity.java は以下のようなものです

package com.example.ragefacefolks;

import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.Button;
import android.app.Activity;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    Button bMain = (Button) findViewById(R.id.button1);

    @Override
    public void registerForContextMenu(View view) {
        // TODO Auto-generated method stub
        super.registerForContextMenu(bMain);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);

    }


}

その理由を知るのは難しいことではありません。少し助けが必要です。ログ猫はこれらの結果を示しています

09-27 07:59:24.677: D/AndroidRuntime(555): Shutting down VM
09-27 07:59:24.677: W/dalvikvm(555): threadid=1: thread exiting with uncaught exception (group=0x40015560)
09-27 07:59:24.707: E/AndroidRuntime(555): FATAL EXCEPTION: main
09-27 07:59:24.707: E/AndroidRuntime(555): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ragefacefolks/com.example.ragefacefolks.MainActivity}: java.lang.NullPointerException
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.os.Looper.loop(Looper.java:123)
09-27 07:59:24.707: E/AndroidRuntime(555):  at android.app.ActivityThread.main(ActivityThread.java:3683)
09-27 07:59:24.707: E/AndroidRuntime(555):  at java.lang.reflect.Method.invokeNative(Native Method)
4

3 に答える 3

1

呼び出すことはできません:

Button bMain = (Button) findViewById(R.id.button1);

そのようなクラスで(具体的には、 before を呼び出すことはできませんonCreate)。

このコードを に移動しますonCreate

于 2013-09-29T12:02:47.760 に答える
1

行を削除

Button bMain = (Button) findViewById(R.id.button1);

方法を変更しonCreateます。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button bMain = (Button) findViewById(R.id.button1);
    registerForContextMenu(bMain);
}

メソッドをオーバーライドする必要はありませんregisterForContextMenu

于 2013-09-29T12:04:28.463 に答える