getActionBar()返回Null(AppCompat-v7 21)

use*_*899 43 android nullpointerexception android-appcompat

在我将AppCompat-v7更改为21.0.0并且编译没有问题后,我的应用程序崩溃了.

它给了我错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setIcon(int)' on a null object reference
Run Code Online (Sandbox Code Playgroud)

在这条线上:

getActionBar().setIcon(R.drawable.ic_action_bar);
Run Code Online (Sandbox Code Playgroud)

它适用于AppCompat-v7 20.0.0,但不适用于21.0.0.

Com*_*are 85

你需要打电话getSupportActionBar()ActionBarActivity.不要打电话getActionBar()- 这在旧设备上不可用,而对于新的r21版本appcompat-v7,我希望它会一直返回null,因为新的ActionBarActivity禁用并取代了系统操作栏.


Ivo*_*nov 10

如果您的活动是AppCompatActivity,您可以获得如下操作栏:

android.support.v7.app.ActionBar mActionBar = getSupportActionBar();
Run Code Online (Sandbox Code Playgroud)