2013-12-21 226 views
1

为什么我一直得到这个错误:当我点击菜单上的START按钮时,它应该绘制游戏背景,但是仿真器说不确定,APP已经停止。模拟器不断崩溃

这里是logcat的:

12-20 15:52:35.440: D/dalvikvm(941): Not late-enabling CheckJNI (already on) 
12-20 15:52:37.380: D/dalvikvm(941): GC_FOR_ALLOC freed 54K, 4% free 3158K/3288K, paused 29ms, total 30ms 
12-20 15:52:37.530: D/gralloc_goldfish(941): Emulator without GPU emulation detected. 
12-20 15:51:47.789: D/dalvikvm(941): GC_FOR_ALLOC freed 44K, 4% free 3625K/3744K, paused 53ms, total 58ms 
12-20 15:51:47.859: D/AndroidRuntime(941): Shutting down VM 
12-20 15:51:47.859: W/dalvikvm(941): threadid=1: thread exiting with uncaught exception (group=0xb3a95b90) 
12-20 15:51:47.889: E/AndroidRuntime(941): FATAL EXCEPTION: main 
12-20 15:51:47.889: E/AndroidRuntime(941): Process: com.jfdimarzio, PID: 941 
12-20 15:51:47.889: E/AndroidRuntime(941): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jfdimarzio/com.jfdimarzio.PBGame}: java.lang.NullPointerException 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread.access$700(ActivityThread.java:135) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.os.Handler.dispatchMessage(Handler.java:102) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.os.Looper.loop(Looper.java:137) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread.main(ActivityThread.java:4998) 
12-20 15:51:47.889: E/AndroidRuntime(941): at java.lang.reflect.Method.invokeNative(Native Method) 
12-20 15:51:47.889: E/AndroidRuntime(941): at java.lang.reflect.Method.invoke(Method.java:515) 
12-20 15:51:47.889: E/AndroidRuntime(941): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
12-20 15:51:47.889: E/AndroidRuntime(941): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
12-20 15:51:47.889: E/AndroidRuntime(941): at dalvik.system.NativeStart.main(Native Method) 
12-20 15:51:47.889: E/AndroidRuntime(941): Caused by: java.lang.NullPointerException 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.view.ViewGroup.addViewInner(ViewGroup.java:3561) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.view.ViewGroup.addView(ViewGroup.java:3415) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.view.ViewGroup.addView(ViewGroup.java:3391) 
12-20 15:51:47.889: E/AndroidRuntime(941): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:309) 
12-20 15:51:47.889: E/AndroidRuntime(941): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:299) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.Activity.setContentView(Activity.java:1948) 
12-20 15:51:47.889: E/AndroidRuntime(941): at com.jfdimarzio.PBGame.onCreate(PBGame.java:14) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.Activity.performCreate(Activity.java:5243) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
12-20 15:51:47.889: E/AndroidRuntime(941): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
12-20 15:51:47.889: E/AndroidRuntime(941): ... 11 more 
12-20 15:51:53.249: I/Process(941): Sending signal. PID: 941 SIG: 9 

这里是PBGame.java。你能帮我解决NullPointerException吗? (PBGame是一个新的活动)

import android.app.Activity; 
import android.os.Bundle; 

public class PBGame extends Activity { 
    final PBGameVars gameEngine = new PBGameVars(); 
    private PBGameView gameView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(gameView); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     gameView.onResume(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     gameView.onPause(); 
    } 

} 
+0

阅读这个答案,http://stackoverflow.com/questions/8968238/gralloc- goldfish634-emulator-without-gpu-emulation-detected ... – InnocentKiller

+1

你在PBGame.java的第14行有什么,这行代码给了NPE。 – SathishKumar

+0

错误'PBGame.java:'在第14行。发布'PBGAME.java'代码 –

回答

1

documentation,你通常会用一个布局资源定义你UI调用setContentView(int)。

所以,它应该是

setContentView(R.layout.gameView); 

,并删除gameView.onResume();gameView.onPause();

gameView = new PBGameView(this);// note the this keyword 
+0

好吧,我发现它是一个缺少的行称为:gameView = new PBGameView(this );不管怎么说,还是要谢谢你! – user7777777

+0

如果是这样,你可以回答你的问题。所以它会对别人有帮助 –