java.lang.RuntimeException:期待菜单,得到了ScrollView

时间:2012-11-06 12:33:41

标签: android screen scrollview runtimeexception

我创建了一个在三星galaxy ace设备上完美运行的Android应用程序。 但是当我在HTC Desire V上运行时,它会给出致命的异常。 注意:三星设备是3.5英寸屏幕设备,而HTC是4英寸设备。 logcat中显示的错误如下:

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 个答案:

答案 0 :(得分:2)

确保您的activity_handpump.xml仅包含<menu><item><group>元素。根据Android documentation<ScrollView>不应位于activity_handpump.xml

关于它如何处理Galaxy Ace的唯一解释是我为不同屏幕尺寸加载的菜单有不同的布局(Ace是mdpi而Desire是hdpi)