0
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/next_page"
        android:title="@string/next"
        android:onClick="next_page"
        android:showAsAction="ifRoom|withText" 
        android:orderInCategory="2"  />
    <item android:id="@+id/begin_calc"
        android:title="@string/begin"
        android:onClick="initial_values"
        android:showAsAction="ifRoom|withText"
        android:orderInCategory="1"  />
</menu>

Nexus 7 では問題なく動作するのに、Android 4.0.4 と 4.0.3 を実行している他の 2 つの新しい携帯電話では、読み込み時にクラッシュするのはなぜですか??

エミュレーターでも問題なく動作します: マニフェストには以下が含まれます:

<application
    android:uiOptions="splitActionBarWhenNarrow"

エミュレータ上で正常に動作します

onClick 行を削除すると、電話で実行されますが、明らかにそれらの行が要点です

どうでも :)

動作する別の方法を見つけました。onClick xml の使用を忘れて、代わりに使用します。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) { 
    case R.id.next_page_u_fool:
        startActivity(new Intent(this, A02_Second_page.class));
        break;
    case R.id.action_settings:
        startActivity(new Intent(this, A01_First_page.class)); 
        break;
    case R.id.begin_calc_or_puke:
        read_fields_first_page(); 
        startActivity(new Intent(this, Rvb_Initial_values_1.class));
        break;
    default:
        break;
    }
    return true;
} 

public boolean onCreateOptionsMenu(Menu menu) {

Eclipseは次のように吐き出します:

AndroidRuntime(25734): 致命的な例外: main AndroidRuntime(25734): android.view.InflateException: クラス android.view.ContextThemeWrapper AndroidRuntime(25734) のメニュー項目 onClick ハンドラ next_page を解決できませんでした: android.view.MenuInflater$InflatedOnMenuItemClickListener で。 (MenuInflater.java:202) AndroidRuntime(25734): android.view.MenuInflater$MenuState.setItem(MenuInflater.java:402) で AndroidRuntime(25734): android.view.MenuInflater$MenuState.addItem(MenuInflater.java:436 で) AndroidRuntime(25734): at android.view.MenuInflater.parseMenu(MenuInflater.java:173) AndroidRuntime(25734): at android.view.MenuInflater.inflate(MenuInflater.java:95) AndroidRuntime(25734): at ( 私のパッケージなど) .A01_First_page.onCreateOptionsMenu(A01_First_page.java:54) AndroidRuntime(25734): android.app.Activity.onCreatePanelMenu(Activity.java:2501) AndroidRuntime(25734): com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:415) で AndroidRuntime(25734): com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow. java:805) AndroidRuntime(25734): com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:2985) で AndroidRuntime(25734): android.os.Handler.handleCallback(Handler.java:605) で) AndroidRuntime(25734): android.os.Handler.dispatchMessage(Handler.java:92) で AndroidRuntime(25734): android.os.Looper.loop(Looper.java:154) で AndroidRuntime(25734): android.app で.ActivityThread.main(ActivityThread.java:4945) AndroidRuntime(25734): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) AndroidRuntime(25734): java.lang.reflect.Method.invoke(Method.java: 511) AndroidRuntime(25734): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) AndroidRuntime(25734): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) で AndroidRuntime(25734): dalvik.system.NativeStart.main( Native Method) AndroidRuntime(25734): 原因: java.lang.NoSuchMethodException: next_page [interface android.view.MenuItem] AndroidRuntime(25734): at java.lang.Class.getConstructorOrMethod(Class.java:460) AndroidRuntime(25734) : at java.lang.Class.getMethod(Class.java:915) AndroidRuntime(25734): at android.view.MenuInflater$InflatedOnMenuItemClickListener.(MenuInflater.java:200) AndroidRuntime(25734): ... 18 もっと見るjava.lang.NoSuchMethodException: next_page [インターフェイス android.view.MenuItem] AndroidRuntime(25734): at java.lang.Class.getConstructorOrMethod(Class.java:460) AndroidRuntime(25734): at java.lang.Class.getMethod(Class .java:915) AndroidRuntime(25734): at android.view.MenuInflater$InflatedOnMenuItemClickListener.(MenuInflater.java:200) AndroidRuntime(25734): ... 18 もっと見るjava.lang.NoSuchMethodException: next_page [インターフェイス android.view.MenuItem] AndroidRuntime(25734): at java.lang.Class.getConstructorOrMethod(Class.java:460) AndroidRuntime(25734): at java.lang.Class.getMethod(Class .java:915) AndroidRuntime(25734): at android.view.MenuInflater$InflatedOnMenuItemClickListener.(MenuInflater.java:200) AndroidRuntime(25734): ... 18 もっと見る

4

1 に答える 1

0

将来これに遭遇する可能性のある人のために...最初のビット-XMLを使用-アクティビティのメソッドとしてnext_pageとinitial_valuesが必要だと思います...

public void next_page(View v){
    ...
}

public void initial_values(View v){
    ...
}

上記のように、 onOptionsItemSelected も使用できます

于 2013-06-01T15:16:02.447 に答える