Sto definendo le voci di menu in XML e sto tentando di utilizzare l'attributo onClick aggiunto in API 11. Quando l'attività viene avviata in un emulatore in esecuzione 4.0.3, il seguenti eccezioni si verificano:InflateException: Impossibile risolvere la voce di menu sul gestore di clic.
FATAL EXCEPTION: main
android.view.InflateException: Couldn't resolve menu item onClick handler
onFeedbackMenu in class android.view.ContextThemeWrapper
...
Caused by: java.lang.NoSuchMethodException: onFeedbackMenu
[interface com.actionbarsherlock.view.MenuItem]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
non capisco che cosa sta causando l'eccezione, in quanto il metodo seguente è definito nella mia attività
import com.actionbarsherlock.view.MenuItem;
...
public void onFeedbackMenu(MenuItem menuItem) {
Toast.makeText(this, "onFeedBack", Toast.LENGTH_LONG).show();
}
mio file di definizione del menu XML contiene:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
...
<item
android:id="@+id/menu_feedback"
android:icon="@drawable/ic_action_share"
android:showAsAction="ifRoom"
android:title="@string/menu_feedback"
android:onClick="onFeedbackMenu" />
</menu>
Per compatibilità all'indietro Sto usando ActionBarSherlock e ricevo anche un'eccezione molto simile quando eseguo l'app su 2.3.x.
Questa è una versione più completa della pila traccia
FATAL EXCEPTION: main
android.view.InflateException: Couldn't resolve menu item onClick handler
onFeedbackMenu in class android.view.ContextThemeWrapper
at com.actionbarsherlock.view.MenuInflater$InflatedOnMenuItemClickListener.<init>(MenuInflater.java:204)
at com.actionbarsherlock.view.MenuInflater$MenuState.setItem(MenuInflater.java:410)
at com.actionbarsherlock.view.MenuInflater$MenuState.addItem(MenuInflater.java:445)
at com.actionbarsherlock.view.MenuInflater.parseMenu(MenuInflater.java:175)
at com.actionbarsherlock.view.MenuInflater.inflate(MenuInflater.java:97)
...
Caused by: java.lang.NoSuchMethodException: onFeedbackMenu
[interface com.actionbarsherlock.view.MenuItem]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getMethod(Class.java:915)
at com.actionbarsherlock.view.MenuInflater$InflatedOnMenuItemClickListener.<init>(MenuInflater.java:202)
... 23 more
Ho lo stesso problema e sembra essere correlato all'applicazione di un tema personalizzato a ActionBarSherlock, anche se non sono sicuro ... Stai utilizzando un tema personalizzato? – Zharf
Sì, sto usando un tema personalizzato. –
Sì, questo succede per me su un dispositivo 4.0.3 reale, ma non sull'emulatore 4.1. Posso solo supporre che sia un bug in Android che è stato riparato da allora. Non sto usando ActionBarSherlock. – Timmmm