Android 使用弹出菜单给出ClassNotFound异常

Android 使用弹出菜单给出ClassNotFound异常,android,popupmenu,Android,Popupmenu,我正在我的应用程序中使用弹出菜单,点击后它会崩溃,导致ClassNotFound异常。 我使用了以下代码 menu=(ImageView)findViewById(R.id.menu); menu.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub Pop

我正在我的应用程序中使用弹出菜单,点击后它会崩溃,导致ClassNotFound异常。 我使用了以下代码

menu=(ImageView)findViewById(R.id.menu);
  menu.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view) {
        // TODO Auto-generated method stub
        PopupMenu popupMenu = new PopupMenu(HTTTPGet.this, view);
        popupMenu.setOnMenuItemClickListener(HTTTPGet.this);
        popupMenu.inflate(R.menu.popupmenu);
        popupMenu.show();
    }
});
下面是onmenuitemclick方法

@Override
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {

case R.id.home:
    Intent home=new Intent(this,HTTTPGet.class);
    startActivity(home);
    return true;
case R.id.schedule:
    Intent schedule=new Intent(this,Schedule.class);
    startActivity(schedule);
    return true;
case R.id.manual:
    Intent manual=new Intent(this,Schedule.class);
    startActivity(manual);
    return true;
default:
return false;
}
}
单击imageview后,应用程序将崩溃,并且logcat正在运行

    09-30 16:19:31.560: E/AndroidRuntime(6294): FATAL EXCEPTION: main
09-30 16:19:31.560: E/AndroidRuntime(6294): java.lang.NoClassDefFoundError: android.widget.PopupMenu
09-30 16:19:31.560: E/AndroidRuntime(6294):     at com.teapoyinfotech.cvv.HTTTPGet$1.onClick(HTTTPGet.java:99)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.view.View.performClick(View.java:2538)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.view.View$PerformClick.run(View.java:9152)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.os.Handler.handleCallback(Handler.java:587)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.os.Looper.loop(Looper.java:130)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at android.app.ActivityThread.main(ActivityThread.java:3687)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at java.lang.reflect.Method.invokeNative(Native Method)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at java.lang.reflect.Method.invoke(Method.java:507)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
09-30 16:19:31.560: E/AndroidRuntime(6294):     at dalvik.system.NativeStart.main(Native Method)

我是否需要向上述代码中添加任何内容?

尽管只指定了
this
give
activityname。在onmenuitemclick方法中调用intent时,此
。希望它能工作

弹出菜单
可从Android API 11获得

所以只需在清单文件中检查您的最低SDK版本。您至少必须设置SDK的最低版本
11


有关更多信息,请阅读API 11级中引入的文档

看起来您正在使用11+编译项目,最小API小于11,并且在android版本小于11的设备上启动

这可能会导致ClassNotFoundException

决定如下: 1) 将AndroidManifest.xml中的最低API级别提高到11(这样就无法在android版本低于11的设备上启动应用程序) 2) 使用android支持v7库中的PopupMenu(android.support.v7.widget.PopupMenu) 要获取此库,请参阅:


希望这些东西中的一个能满足你的需要

它不起作用。不是有用的答案。只需非常清楚和正确地阅读logcat.:(好的,我将进行交叉检查。是否在活动中定义了imageview id?