2012-12-12 78 views
0

我想從菜單啓動遊戲。在Eclipse中,我有兩個項目,一個是菜單,另一個是實際的遊戲。兩者都使用SimpleBaseGameActivity作爲它們的基礎。網上的例子做了如下的事情。特別是,它創建了一個意圖,並以該意圖開始一項活動。下面的代碼給出了MyGame.class上的NoClassDefFoundError。這並不奇怪,因爲MyGame.class不存在,而是MyGame.apk。我該怎麼做呢?andengine從菜單啓動遊戲

public boolean onMenuItemClicked(final MenuScene pMenuScene, 
     final IMenuItem pMenuItem, 
     final float pMenuItemLocalX, 
     final float pMenuItemLocalY) { 

switch(pMenuItem.getID()) { 

case MENU_PLAY: 
MainActivity.this.runOnUiThread(new Runnable() { 
    public void run() { 

     Intent intent = new Intent(getApplication(), MyGame.class); 
     startActivity(intent); 
     finish(); 

    } 
}); 
return true; 

-----編輯

我找到了工作,一切在一個項目中,在被點擊的菜單項時,隨後的比賽開始。但是,當單擊「後退箭頭」時,它不會返回到菜單,而是返回到操作系統。清單文件中的活動定義如下。這看起來是否正確?

<activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="com.mygame.MyGame" 
     android:label="@string/mygame_activity" 
     android:parentActivityName="com.menu.MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.menu.MainActivity" /> 
    </activity> 

我說這MyGame,但它不會被調用:
@覆蓋 保護無效onActivityResult(INT requestCode,INT resultCode爲,意圖數據){}

---編輯 我需要刪除此行: MainActivity.this.finish();

回答

4

在清單第一個插入的標籤

<application>...</application> 

本文標籤:

<activity 
     android:name=".MyGame" 
     android:label="MygameName" > 
    </activity> 

,並改變你的代碼:

public boolean onMenuItemClicked(final MenuScene pMenuScene, 
     final IMenuItem pMenuItem, 
     final float pMenuItemLocalX, 
     final float pMenuItemLocalY) { 

switch(pMenuItem.getID()) { 

case MENU_PLAY: 
MainActivity.this.runOnUiThread(new Runnable() { 
    public void run() { 

     Intent intent = new Intent(MainActivity.this, MyGame.class); 
     startActivity(intent); 
     MainActivity.this.finish(); 

    } 
}); 
return true; 
+0

最後回到這個。我已按照您的建議實施,但仍然會出現相同的錯誤。我仍然處於最初的窘境,它正在尋找,並不奇怪,找不到MyGame.class。根據下面的鏈接,在apk中將類編譯爲dex格式。 http://en.wikipedia.org/wiki/APK_%28file_format%29 – numberwang

-1

請刪除通話至函數「finish()」,然後它將帶你回到父活動。