2014-09-30 3 views
0

Я использую всплывающее меню в своем приложении, и он сбой после нажатия, предоставляя ClassNotFound Exception. Я использовал следующий кодИспользование всплывающего меню, дающего ClassNotFound Exception

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) 

ли мне нужно добавить что-нибудь до кода выше?

ответ

1

PopupMenu доступна с Android API 11.

Так просто проверить минимальную версию SDK в файле манифеста. И по крайней мере вы должны установить минимальную версию SDK 11.

Для получения более подробной информации читайте документы http://developer.android.com/reference/android/widget/PopupMenu.html

0

, несмотря на указание только this дать activityname.this при вызове намерения в методе onmenuitemclick. надеюсь, что он работает

+0

это не работает. Не полезный ответ. Просто прочитайте logcat очень четко и правильно. – Piyush

+0

:(ok i ll crosscheck. –

+0

определили свой идентификатор изображения в своей деятельности? –

1

PopupMenu была введена в уровне API 11

Похоже, вы компилируете свой проект с 11+, Minumum API менее 11, и запуск на устройстве с Android версия менее 11.

Это может привести к ClassNotFoundException

в decicions является следующим: 1) Увеличьте минимальный уровень API до 11 в вашем AndroidManifest.xml (что делает невозможным запуск приложения на устройствах с версией для Android менее 11 2) Использование PopupMenu из библиотеки поддержки v7 для android (android.support.v7.widget.PopupMenu) Чтобы получить эта библиотека, пожалуйста, обратитесь к: http://developer.android.com/tools/support-library/setup.html

Надежда одна из этих вещей будет соответствовать вашим потребностям

Смежные вопросы