我有一个小游戏,其中我使用了一个随机单词,我也分成了一个数组,这在开始时运行正常,但是当我尝试用新单词填充变量时程序崩溃。也许我这样做是错误的,也许我只是愚蠢而没有看到明显的错误,无论哪种方式我都可以使用一些帮助。
我已将问题分配到这些行中,我通过单击按钮调用newGame()并且调用本身有效。该计划使用3个不同的类。
在我的MainActivity类中:
public void newGame(){
fullWord = "";
fullWord = _c.getWord();
charArray = fullWord.split("(?!^)");}
在Controller类中:
public String getWord(){
return _m.setWord();
}
在Model类中:
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 :(得分:1)
从您的logcat和评论判断我只能得出您的_c
对象为空。您应该查看代码并查找原因,或发布一些相关代码,以便我可以帮助您。