2012-04-04 2 views
0

私はJavaとAndroidの開発にも新しく、しばらくの間Wildfire Sでシンプルなゲームを作っていて、Null Pointer Exceptionを取得したとき以外はうまくいきました。どのコードがNull Pointer Exceptionを投げていますか?

すべてのフォーラムNull Pointer Exceptionとは何か、または先制攻撃する方法について詳しく説明しましたが、必要なものではありません。

私がここで直面している問題は、Eclipseが私の注意を引くように見えるコードの部分が完全にうまく見えることであり、私はそれをまったく編集していないということです。だから私はおそらくどこかで間違って何かを変えてしまったでしょう。どのエリアが編集されているのか分からず、なぜエラーがスローされているのか分からないようです。

非常に長い時間編集されていないGoalieMenu.javaのonCreateメソッドでエラーが発生しているようです。これは3つのボタン(start、howToPlay、Exit)を含むmainmenu.xmlをレイアウトとして使用する単純なアクティビティです。それぞれのボタンには、それらが完全に見える独自の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> 
+0

....これを試してみてくださいだけでなく、あなたのmainmenu.xmlを投稿してください。私たちが行くそこ –

+0

は、:) – htvisttj

答えて

2

GoalieMenu.java:34、私はそれを考えますこの本howToPlayButton.setOnClickListener

です210

howToPlayButtonがnullの可能性があります。

デバッグ、あなたは疑いtrycatchを使用しています。

+0

を見るために皆のためにそれを掲示し、私でしたこの:もし(!howToPlayButton = NULL){ \t \t this.howToPlayButton =(ボタン)this.findViewById(R.id.howToPlayButton)。 \t \t this.howToPlayButton。setOnClickListener(新しいOnClickListener(){ \t \t \t公共ボイドのonClick(ビューV){ \t \t \t \t startActivity(新しいインテント( "com.luk.games.Goalie.HowToPlayActivity")); \t \t \t} \t \t}); \t \t} – htvisttj

+0

whoops! とにかく、GoalieMenu.java.43と同じ結果しか得られませんが、それが意味を持っているかどうかわかりません – htvisttj

+0

私は行数を嫌い、問題の行で質問を更新してください。 –

0

次のように新しい活動を開始してみてください。

startActivity(new Intent(getApplicationContext(), 
     GameActivity.class)); 

同じHowToPlayActivity

+0

私のstartActivity行があなたのものに置き換えられて同じものが返されます – htvisttj

+0

私の最後の解決策: –

+0

それは何もしないようでした。助けていただきありがとうございますが、mainmenu.xmlファイル内の – htvisttj

0

のために私の最高の推測では、あなたのfindViewById文のいずれかで間違っていろいろ書いがあるということです - 要素はRによって参照されているかどうかを確認.id。レイアウトxmlに実際に存在します。

+0

とr.javaのすべての参照はきれいであるようです – htvisttj

0

あなたのコード内のマイナーチェンジと、これを試してください::::

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); 

     findViewById(R.id.startGameButton).setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      startActivity(new Intent("com.luk.games.Goalie.GameActivity"));  
      } 
     }); 

     findViewById(R.id.howToPlayButton).setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       startActivity(new Intent("com.luk.games.Goalie.HowToPlayActivity"));    
      } 
     }); 

     findViewById(R.id.exitButton).setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 
} 
} 

+0

すばらしい、ありがとう。それは今も少しクリーナーです! – htvisttj

関連する問題