私はJavaとAndroidの開発にも不慣れで、Wildfire Sで簡単なゲームをしばらく作成していて、Null Pointer Exceptionが発生するたびに、何が原因であるかを正確に特定できない場合を除いて、順調に進んでいます。
私が検索したすべてのフォーラムでは、Null Pointer Exceptionとは何か、またはそれらを先制的に克服する方法について詳しく説明していますが、それは私が必要としていることではありません。
ここで私が直面している問題は、Eclipseが私の注意を引いているように見えるコードの部分が完全に正常に見え、私はそれをまったく編集していないということです。だから私はどこかで間違って何かを変えたのかもしれません。どの領域が編集されているのかわからないので、エラーがスローされている理由がわからないようです。
ログには、非常に長い間編集されていないGoalieMenu.javaのonCreateメソッドでエラーが発生していることが示されているようです。これは、mainmenu.xmlをレイアウトとして使用する単なるアクティビティであり、3つのボタン(start、howToPlay、Exit)が含まれています。各ボタンには独自のXMLがあり、すべて問題ないようです...
これは本当に馬鹿げた明白なことになるのではないかと心配していますが、私は自分が見ているものにあまり精通していないので、時間がかかり、見つけることができません!! grr
これがログです:
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): FATAL EXCEPTION: main
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): java.lang.RuntimeException: Unable
to start activity
ComponentInfo{com.luk.games.Goalie/com.luk.games.Goalie.GoalieMenu}:
java.lang.NullPointerException
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1830)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread.access$1500(ActivityThread.java:132)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.os.Handler.dispatchMessage(Handler.java:99)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.os.Looper.loop(Looper.java:150)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread.main(ActivityThread.java:4277)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
java.lang.reflect.Method.invokeNative(Native Method)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
java.lang.reflect.Method.invoke(Method.java:507)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
dalvik.system.NativeStart.main(Native Method)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): Caused by:
java.lang.NullPointerException
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
com.luk.games.Goalie.GoalieMenu.onCreate(GoalieMenu.java:34)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794)
04-04 16:27:57.277: ERROR/AndroidRuntime(2831): ... 11 more
GoalieMenu.javaは次のとおりです。
package com.luk.games.Goalie;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class GoalieMenu extends Activity {
private Button startGameButton;
private Button howToPlayButton;
private Button exitButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.mainmenu);
this.startGameButton = (Button)this.findViewById(R.id.startGameButton);
this.startGameButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent("com.luk.games.Goalie.GameActivity"));
}
});
this.howToPlayButton = (Button)this.findViewById(R.id.howToPlayButton);
this.howToPlayButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent("com.luk.games.Goalie.HowToPlayActivity"));
}
});
this.exitButton = (Button)this.findViewById(R.id.exitButton);
this.exitButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
}
mainmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:background="@drawable/mainmenuscreen"
android:layout_height="match_parent" android:orientation="vertical">
<Button
android:id="@+id/startGameButton"
android:background="@layout/startgamebutton"
android:layout_height="50dp"
android:layout_width="180dp"
android:layout_gravity="center"
android:layout_marginTop="100dip"/>
<Button
android:id="@+id/howToPlayButton"
android:background="@layout/howtoplaybutton"
android:layout_height="50dp"
android:layout_width="180dp"
android:layout_gravity="center"/>
<Button
android:id="@+id/exitButton"
android:background="@layout/exitbutton"
android:layout_height="50dp"
android:layout_width="180dp"
android:layout_gravity="center"/>
</LinearLayout>