2012-11-06 16 views
0

我已經創建了一個Android應用程序,可以在Samsung galaxy ace設備中完美運行。 但是,當我在HTC Desire V上運行相同的時候,它給出了致命的特殊效果。 注意:三星設備是3.5英寸的屏幕設備,而HTC是4英寸的設備。 在logcat中顯示的錯誤是如下:java.lang.RuntimeException:期待菜單,得到ScrollView

FATAL EXCEPTION: main 
java.lang.RuntimeException: Expecting menu, got ScrollView 
at android.view.MenuInflater.parseMenu(MenuInflater.java:128) 
at android.view.MenuInflater.inflate(MenuInflater.java:95) 
at com.pixel.hp.activity.HandpumpActivity.onCreateOptionsMenu(HandpumpActivity.java:1476) 
at android.app.Activity.onCreatePanelMenu(Activity.java:2508) 
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:407) 
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:762) 
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:3083) 
at android.os.Handler.handleCallback(Handler.java:608) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:156) 
at android.app.ActivityThread.main(ActivityThread.java:4987) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 

是因爲屏幕尺寸還是別的什麼變化呢? 對此的任何想法都會非常有幫助。

我在下面的方法得到錯誤(第二行是HandpumpActivity.java:1476):

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_handpump, menu); 
    return true; 
} 
+1

什麼是HandpumpActivity .java:1476行代碼? –

+0

您在應用程序中創建的內容。是關於菜單嗎?面板的尺寸或方向或您使用的任何東西可能有問題。所以最好發佈一些相關代碼。 –

+0

@Mohamed_AbdAllah:請檢查我編輯的問題。在那裏我提到了一行:1476 – Shrikant

回答

2

確保您activity_handpump.xml只包含<menu><item><group>元素。按照Android documentation<ScrollView>不應位於activity_handpump.xml

它是如何工作的銀河王牌,我能想到的唯一解釋是,您有用於加載不同屏幕尺寸的菜單不同的佈局(ACE是MDPI而慾望是華電國際)

+0

感謝您的回覆。這可能有助於我在某些情況下。將通過鏈接。 – Shrikant

+0

顯然,如果您將類命名爲「菜單」並將其重命名,則包含<'menu'>的所有xml文件都會將其重命名爲重構它的新名稱。 –