Android / Java - 调用随机函数只能工作一次

时间:2014-09-21 20:34:27

标签: java android eclipse

我有一个小游戏,其中我使用了一个随机单词,我也分成了一个数组,这在开始时运行正常,但是当我尝试用新单词填充变量时程序崩溃。也许我这样做是错误的,也许我只是愚蠢而没有看到明显的错误,无论哪种方式我都可以使用一些帮助。

我已将问题分配到这些行中,我通过单击按钮调用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

1 个答案:

答案 0 :(得分:1)

从您的logcat和评论判断我只能得出您的_c对象为空。您应该查看代码并查找原因,或发布一些相关代码,以便我可以帮助您。