-1

Я изменил свой класс с Activity на AppCompatActivity.NullPointerException при изменении Activity to AppCompatActivity

И изменил item.getActionView() к MenuItemCompat.getActionView(item)

Теперь я получаю 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 вы должны использовать app:actionViewClass, а не android: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

Большое вам спасибо за это. У меня возникали проблемы, когда я объединил два проекта вместе (два члена команды запустили одно и то же приложение в разных репозиториях). Один из них был Activity, а другой - AppCompatActivity, в котором была панель поиска. –