2014-01-24 57 views
0

我的應用程序和eclipse出現問題,所以我保存了我的代碼,刪除了eclipse,然後重新下載並解壓。在我將XML文件添加到res/menu後,立即收到一條窗口消息,說aapt.exe已停止工作;我之前不斷收到這個消息。我之前就研究過它,所以我知道如果XML文件寫入不正確,aapt.exe會一直崩潰。唯一的是,我沒有看到文件的問題。這個XML文件有什麼問題? (不斷崩潰aapt.exe)

createlgmenu.xml(用作彈出菜單的按鈕事件):

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/Create_List" 
     android:title="@string/Create_List"/> 

    <item 
     android:id="@+id/Create_Food_Group" 
     android:title="@string/Create_Food_Group"/> 

</menu> 

|

|

其他文件:

我在mainactivity.java幾乎沒有代碼:

package com.example.groceryrunner; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.PopupMenu; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 


    public void onCreateLGClick(View v) { 
     final int id = v.getId(); 
     switch (id) { 
     case R.id.CreateLG: 
      //findViewById(R.id.GetStarted).setVisibility(View.INVISIBLE); 
      createLGPopup(v); 
      break; 
     /*case R.id.ListsButton: 
      findViewById(R.id.GetStarted).setVisibility(View.INVISIBLE); 
      createLGMenu(v); 
      break;*/ 
     } 
    } 

    public void createLGPopup(View v) { 
     PopupMenu LGMenu = new PopupMenu(this, v); 
     LGMenu.getMenuInflater().inflate(R.menu.createlgmenu, LGMenu.getMenu()); 
     LGMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 

      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       String choice = new String((String) item.getTitle()); 
       if (choice == "Create_List") { 
        //createListDialog(); 
       } 
       else if (choice == "Create_Group") { 
        //createListDialog(); 
       } 
       return false; 
      } 
     }); 
     LGMenu.show(); 
    } 

} 

只有一個按鈕,在我的activity_main.xml中至今:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/CreateLG" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="37dp" 
     android:layout_marginTop="21dp" 
     android:text="+" 
     android:textSize="40sp" /> 

</RelativeLayout> 

如果您希望看到我的menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:showAsAction="never" 
     android:title="@string/action_settings"/> 

</menu> 
+0

你是否改變了android:id =「@ id/Create_List」到android:id =「@ + id/Create_List」之類的東西,我看到你的menu.xml是正確的,請嘗試清理你的項目。 – Jorgesys

+0

不,它總是說@ + id。另外,當我的res/menu中有createlg_menu.xml時,我似乎無法清理我的項目,因爲不是清理項目,而是aapt.exe再次停止工作。如果我刪除createlg_menu.xml,項目會自行清理。 我還應該說我的MainActivity.java永遠不會檢測到createlg_menu(最初稱爲createlgmenu),它認爲它不存在。它也沒有說其他的東西存在,比如CreateLG,我唯一的按鈕id(它曾經很好..)。 – user2100364

回答

0

我想我找到了我的解決方案。

我已經複製了xml,並且自己更改了項目。所以我刪除它並通過Eclipse創建它(右鍵單擊res/menu文件夾>新建>其他> Android XML文件>菜單)。我不再似乎得到appt.exe錯誤。然後我使用Eclipse 添加了這些項目,而不是自己編寫或複製它們的

在這兩個文件中的唯一的區別是舊的結束了這個每個項目:

\> 

而且通過Eclipse中創建一個使用這個在項目申報結束:

></item> 

至於Eclipse中不承認我的XML文件,ADAMM幫我找到了解決這一問題還有: 1)我刪除將R進口

2)評論指出,是給我的錯誤,承認我的XML文件

3)重啓動Eclipse的&內置所有

1

如果您使用的是支持庫和庫項目,那麼你需要一個自定義命名爲「線showAsAction「標籤用於較舊的平臺版本。

所以更改此設置:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:showAsAction="never" 
     android:title="@string/action_settings"/> 

</menu> 

要這樣:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:custom="http://schemas.android.com/apk/res-auto" > 

    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     custom:showAsAction="never" 
     android:title="@string/action_settings"/> 

</menu> 

注意, 「定製」 可以是任何你想要。