2014-02-02 6 views
1

я запускаю следующий код:андроид - getMenuInflater причиной аварии

public class MainActivity extends ActionBarActivity 
    { 
ExpandableListAdapter listAdapter; 
ExpandableListView expListView; 
List<String> listDataHeader; 
HashMap<String, List<String>> listDataChild; 
public static final String PREFS_NAME = "MyPrefsFile"; 
static SharedPreferences mPrefs; 
SharedPreferences.Editor shPrefEditor; 
public int BlackBackground=0, SleepScreen=1; 
static MenuInflater inflater; 
public ActionBar ab; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mPrefs = getSharedPreferences(PREFS_NAME, 0); 
    shPrefEditor = mPrefs.edit(); 
    BlackBackground = mPrefs.getInt("BlackBackground", 0); 
    inflater = getMenuInflater(); 
... 

Тренажер аварии (NullPointerException) на:

inflater = getMenuInflater(); 

Кто-нибудь знает почему? И как я могу это исправить?

ответ

0

Чтобы решить эту проблему, getMenuInflater() необходимо переместить из onCreate в onCreateOptionsMenu(). Кажется, что есть некоторые устройства (например, Nexus 5), которые вызывают сбои, если getMenuInflater() вызывается из onCreate(), и, кроме того, onCreateOptionsMenu() действительно является правильным местом.

+0

Я получил тот же самый сбой и getMenuInflater(). Inflate() вызывается в onCreateOptionsMenu(). Есть идеи? –

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