1

私のアプリケーションでは、アプリケーション内のレイアウト オブジェクトを呼び出すことができないようです。XML ファイルを使用しているコードを含むクラスにアクセスすると、アプリケーションがクラッシュします。このような行

mButton = (Button)findViewById(R.id.get);
cweight   = (EditText)findViewById(R.id.cweight);
nweight   = (EditText)findViewById(R.id.nweight);
t = (TextView)findViewById(R.id.out);

これらのコード行は以前に機能し、それらが呼ばれるレイアウト ファイルが存在します。

このログキャットは以下にあり、それを見ると、問題がどこから来たのかわかりません。特に、このコードは数日前に機能するためです。

05-23 16:12:43.790: E/AndroidRuntime(313): FATAL EXCEPTION: main
05-23 16:12:43.790: E/AndroidRuntime(313): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.b00348312.workout/com.b00348312.workout.WorkoutChoice}: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.os.Looper.loop(Looper.java:123)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread.main(ActivityThread.java:4627)
05-23 16:12:43.790: E/AndroidRuntime(313):  at java.lang.reflect.Method.invokeNative(Native Method)
05-23 16:12:43.790: E/AndroidRuntime(313):  at java.lang.reflect.Method.invoke(Method.java:521)
05-23 16:12:43.790: E/AndroidRuntime(313):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-23 16:12:43.790: E/AndroidRuntime(313):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-23 16:12:43.790: E/AndroidRuntime(313):  at dalvik.system.NativeStart.main(Native Method)
05-23 16:12:43.790: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313):  at com.b00348312.workout.WorkoutChoice.onCreate(WorkoutChoice.java:67)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-23 16:12:43.790: E/AndroidRuntime(313):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-23 16:12:43.790: E/AndroidRuntime(313):  ... 11 more

わかりましたので、コンセンサスが与えられたソリューションを調べると、67行目のヌルポインタ例外のようですが、それは私が上で与えた最初の行です。与えられた別の解決策は、 onCreate メソッドで最初に行った setContent(view view) を使用することです。

上記の行が存在せず、以前に機能していた場合、クラスは完全に正常に機能するため、問題がどこにあるのかわかりません。

4

2 に答える 2

1

使用しているものによってActivityは、間違っている可能性があることがいくつかあります。ビューを設定するだけの場合は完了setContentView(View view)しましたか? それ以外の場合、ビューをインフレートする場合は、 を呼び出す必要がありますview.findViewById(id)。そうすれば、膨張させたばかりのビューでそれを呼び出します。そうしないと、それが見つかりません。

setContentView(View view)編集: 1 つの簡単なメモ、ビューの検索を行う前に電話する必要があるとsetContentView(View view)思いfindViewById(id)ます。

于 2012-05-23T16:26:42.547 に答える
0

問題はWorkoutChoice67 行目にあるようです。値が null のオブジェクトを使用しています。

05-23 16:12:43.790: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313):  at com.b00348312.workout.WorkoutChoice.onCreate(WorkoutChoice.java:67)
于 2012-05-23T16:28:20.327 に答える