2011-07-02 104 views
-2

我的Android模擬器強制每次我嘗試運行它時都會退出程序。我不知道爲什麼,請幫助我!Android模擬器強制關閉

public class AsteroidsToo extends Activity { 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    new AsteroidWorld(3).bigBang(this); 
    } 

}

這裏是logcat的錯誤:

07-02 17:27:54.873: WARN/dalvikvm(332): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332): FATAL EXCEPTION: main 
07-02 17:27:54.893: ERROR/AndroidRuntime(332): java.lang.RuntimeException: Unable to start activity ComponentInfo{foo.AsteroidsToo/foo.AsteroidsToo.AsteroidsToo}: java.lang.NullPointerException 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.os.Looper.loop(Looper.java:123) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at dalvik.system.NativeStart.main(Native Method) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332): Caused by: java.lang.NullPointerException 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at java.util.Hashtable.put(Hashtable.java:369) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.image.FromFile.<init>(FromFile.java:25) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at foo.AsteroidsToo.Ship.<init>(AsteroidsToo.java:75) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at foo.AsteroidsToo.AsteroidWorld.<init>(AsteroidsToo.java:196) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at foo.AsteroidsToo.AsteroidsToo.onCreate(AsteroidsToo.java:13) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
07-02 17:27:54.893: ERROR/AndroidRuntime(332):  ... 11 more 
07-02 17:27:54.923: WARN/ActivityManager(59): Force finishing activity foo.AsteroidsToo/.AsteroidsToo 
07-02 17:27:55.433: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{45053848 foo.AsteroidsToo/.AsteroidsToo} 
07-02 17:28:03.173: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: [email protected] 
07-02 17:28:06.287: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{45053848 foo.AsteroidsToo/.AsteroidsToo} 

這裏是代碼爲我的構造函數:

/**Represents the World*/ 
class AsteroidWorld extends VoidWorld{ 
    Ship sh; 
    ArrayList<Bullet> b; 
    ArrayList<Asteroids> a; 
    int score; 
    int HighScore; 
    State state; 
    int lives; 
    double timer; 

    public AsteroidWorld(int lives) { 
     super(); 
     this.sh = new Ship(300.0,300.0,0.0,0.0,90.0); 
     this.b = new ArrayList<Bullet>(); 
     this.a = new ArrayList<Asteroids>(); 
     this.score = 0; 
     this.HighScore = 0; 
     this.timer = 3.0; 
     this.state = new Lose(); 
     this.lives = lives; 

我也得到一個錯誤說:

[2011-07-02 20時08分08秒 - 模擬器] 2011-07-02 20:08:08.156 模擬器[14734:903]警告一次:此 應用,或者其使用庫,是 使用NSQuickDrawView,已棄用 。應用程序應停止使用 的QuickDraw,並轉移到石英

這裏是我的船的構造

/**Represents the Ship in the game*/ 
class Ship extends FloatObject{ 
Image SpaceShip = new FromFile("spaceship.png"); 
double angle; 
double speed = 2; 
+0

如果您讓代碼更具可讀性,即修復代碼標記,它確實會幫助我們。 – ambagesia

+0

顯示LogCat輸出... –

+0

似乎你在AstroidWorld構造函數中有一個NPE,請粘貼相關代碼。 – MByD

回答

0

我的猜測是,在船舶的構造函數,你沒有顯示,該線在哪裏你創建一個FromFile的新實例,你將一個空值傳遞給FromFile的構造函數。 FromFile的構造函數需要一個String。你甚至可能試圖向它傳遞一個字符串,但無論它到達那裏可能實際上是空的。

FromFile的構造函數將值放入HashTable中,並且該值爲null,而不是它所期望的值。這就是我無法看到這裏所需的一切。

+0

我在哪裏可以將.png文件放入項目中?我編輯了這篇文章,以便您可以看到我的造船構造函數。 –