-1

クラスをActivityからAppCompatActivityに変更しました。ActivityをAppCompatActivityに変更するとNullPointerExceptionが発生する

そしてMenuItemCompat.getActionView(item)

item.getActionView()を変更するには、今私は、次のコードでNPEを取得します。

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.messages, menu); 

    MenuItem item = menu.findItem(R.id.menuTxtSize); 
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); 
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
    int index = sp.getInt(getString(R.string.pr_text_size), 
      Integer.parseInt(getString(R.string.pr_default_text_size))); 
    spinner.setSelection(index); 


E/ACRA: ACRA caught a NullPointerException for com.alex.documentation java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setSelection(int)' on a null object reference at com.alex.message.activities.MessagesActivity 

エラーを解決するにはどうすればよいですか?

+3

NPEが実行されるスタックトレースと実際の回線を含めてください。 – Kiskae

+0

@Kiskae質問にスタックトレースを追加しました –

+0

@Rotwang重複としてマークされているものを削除してください。あなたは、誰かがNPEが何であるかを尋ねているところで簡単な質問を参照しました。これは一般的なNPEの質問ではありません。 –

答えて

4

AppCompatActivityを使用する場合は、android:actionViewClassではなく、app:actionViewClassを使用する必要があります。

+0

はい、あなたは正しいです。 'app:****'と 'android:******'の違いは何ですか? –

+2

'android:'はシステムで提供され、 'app:'はあなたのアプリとそれに含まれるライブラリによって提供されます。 [android: 'vs' app: 'namespace]の完全な説明を参照してください(http://stackoverflow.com/questions/26692233/what-is-the-app-android-xml-namespace/26692768#26692768)詳細はこちら – ianhanniballake

+0

ありがとうございます。 2つのプロジェクトを結合したときに問題が発生していました(2人のチームメンバーが同じリポジトリで同じアプリを起動しました)。一方はアクティビティであり、他方は検索アクションバーを持つAppCompatActivityでした。 –

関連する問題