Java android.widget.PopUpMenu出现问题
我正在努力获得一个Android中弹出菜单的运行示例。据我所知,我所有的资源XML文件都设置正确,我的代码似乎没有任何明显的错误。有人能看出我哪里出错了吗?这是我的密码:Java android.widget.PopUpMenu出现问题,java,android,android-widget,popupmenu,Java,Android,Android Widget,Popupmenu,我正在努力获得一个Android中弹出菜单的运行示例。据我所知,我所有的资源XML文件都设置正确,我的代码似乎没有任何明显的错误。有人能看出我哪里出错了吗?这是我的密码: package com.damian.popupmenu; import android.annotation.TargetApi; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.v
package com.damian.popupmenu;
import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.PopupMenu;
public class MainActivity extends Activity{
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Button that acts as the view element for the pop up menu //
final Button btn=(Button)findViewById(R.id.popupMenuBtn);
// Creating a new instance of pop up menu //
final PopupMenu popupMenu=new PopupMenu(this, btn);
// inflate the menu using the resource in res/menu //
popupMenu.inflate(R.menu.pop_menu);
// calling show() on the menu to display when the button is clicked //
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
popupMenu.show();
}
});
// Handling menu item clicks //
popupMenu.setOnMenuItemClickListener(
new PopupMenu.OnMenuItemClickListener(){
@Override
public boolean onMenuItemClick(MenuItem item){
switch(item.getItemId()){
case R.id.menu_red:btn.setBackgroundResource(R.color.LightRed);break;
case R.id.menu_green:btn.setBackgroundResource(R.color.LightGreen);break;
case R.id.menu_blue:btn.setBackgroundResource(R.color.DullBlue);break;
}
return true;
}
});
}
}
编辑:这是显示的完整日志类别
04-28 11:51:53.102: E/dalvikvm(514): Could not find class 'android.widget.PopupMenu', referenced from method com.damian.popupmenu.MainActivity.onCreate
04-28 11:51:53.102: W/dalvikvm(514): VFY: unable to resolve new-instance 986 (Landroid/widget/PopupMenu;) in Lcom/damian/popupmenu/MainActivity;
04-28 11:51:53.102: D/dalvikvm(514): VFY: replacing opcode 0x22 at 0x0012
04-28 11:51:53.102: D/dalvikvm(514): VFY: dead code 0x0014-002c in Lcom/damian/popupmenu/MainActivity;.onCreate (Landroid/os/Bundle;)V
04-28 11:51:53.142: D/AndroidRuntime(514): Shutting down VM
04-28 11:51:53.142: W/dalvikvm(514): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-28 11:51:53.153: E/AndroidRuntime(514): FATAL EXCEPTION: main
04-28 11:51:53.153: E/AndroidRuntime(514): java.lang.NoClassDefFoundError: android.widget.PopupMenu
04-28 11:51:53.153: E/AndroidRuntime(514): at com.damian.popupmenu.MainActivity.onCreate(MainActivity.java:25)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.os.Handler.dispatchMessage(Handler.java:99)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.os.Looper.loop(Looper.java:123)
04-28 11:51:53.153: E/AndroidRuntime(514): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-28 11:51:53.153: E/AndroidRuntime(514): at java.lang.reflect.Method.invokeNative(Native Method)
04-28 11:51:53.153: E/AndroidRuntime(514): at java.lang.reflect.Method.invoke(Method.java:507)
04-28 11:51:53.153: E/AndroidRuntime(514): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-28 11:51:53.153: E/AndroidRuntime(514): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-28 11:51:53.153: E/AndroidRuntime(514): at dalvik.system.NativeStart.main(Native Method)
多亏了肯的提示,我解决了这个问题。当我需要在4.0+上运行该应用程序时,我正在使用2.2.3的模拟器上运行该应用程序。简单的解决方案是设置一个新的仿真器,重新启动eclipse,一切正常 我忘了提到问题所在:当我尝试运行它时,应用程序“强制关闭”!发布完整stacktraceadded完整日志cat打印输出请发布与api版本相关的清单内容,看起来您正试图在带有api的设备上运行应用程序11@kEN就是这样。。我试图在不支持足够高API的模拟器上运行它。。谢谢