2014-09-21 57 views
1

我得到了一個小遊戲,其中我使用了一個隨機單詞,我也將其分解爲一個數組,這在開始時工作正常,但是當我嘗試用變量填充變量新的程序崩潰。也許我做錯了方式,也許我只是愚蠢的,沒有看到明顯的錯誤,無論哪種方式我可以使用一些幫助。Android/Java - 調用隨機函數只能用一次

我已經將問題分配到這些行中,我通過單擊按鈕調用newGame(),並調用本身的作品。該程序使用3個不同的類。

在我的MainActivity類別:

public void newGame(){ 
    fullWord = ""; 
    fullWord = _c.getWord(); 
    charArray = fullWord.split("(?!^)");} 

在控制器類:

public String getWord(){ 
    return _m.setWord(); 
} 

在模型類:

public String setWord(){ 
    randomWord = wordArray[new Random().nextInt(wordArray.length)]; 
    charArray = randomWord.split("(?!^)"); 
    return randomWord; 
} 

的logcat:09-21 20:40:24.252: W/dalvikvm(536): threadid=1: thread exiting with uncaught exception (group=0x409961f8) 09-21 20:40:24.292: E/AndroidRuntime(536): FATAL EXCEPTION: main 09-21 20:40:24.292: E/AndroidRuntime(536): java.lang.NullPointerException 09-21 20:40:24.292: E/AndroidRuntime(536): at com.example.hangmangame.MainActivity.newGame(MainActivity.java:156) 09-21 20:40:24.292: E/AndroidRuntime(536): at com.example.hangmangame.Model.setNewGame(Model.java:87) 09-21 20:40:24.292: E/AndroidRuntime(536): at com.example.hangmangame.Controller.onClick(Controller.java:39) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.view.View.performClick(View.java:3480) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.view.View$PerformClick.run(View.java:13983) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.os.Handler.handleCallback(Handler.java:605) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.os.Handler.dispatchMessage(Handler.java:92) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.os.Looper.loop(Looper.java:137) 09-21 20:40:24.292: E/AndroidRuntime(536): at android.app.ActivityThread.main(ActivityThread.java:4340) 09-21 20:40:24.292: E/AndroidRuntime(536): at java.lang.reflect.Method.invokeNative(Native Method) 09-21 20:40:24.292: E/AndroidRuntime(536): at java.lang.reflect.Method.invoke(Method.java:511) 09-21 20:40:24.292: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 09-21 20:40:24.292: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 09-21 20:40:24.292: E/AndroidRuntime(536): at dalvik.system.NativeStart.main(Native Method) 09-21 20:40:26.693: I/Process(536): Sending signal. PID: 536 SIG: 9

+0

你可以發佈帶有錯誤的logcat輸出嗎? – TmKVU 2014-09-21 20:37:23

+0

使用logcat輸出進行更新 – heheasd 2014-09-21 20:44:10

+0

哪一行是156行?您在那裏得到NullPointerException,這意味着某些對象爲空 – TmKVU 2014-09-21 20:49:46

回答

1

從看你的logcat和註釋我只能斷定你的_c對象爲空。你應該看看你的代碼,找出原因,或者發佈一些相關的代碼,以便我可以幫助你。