There is a line in my code, that marked as yellow:
getSupportActionBar().setDisplayShowHomeEnabled(true);
After installing appcompat-v7:22.1 it shows a hint:
"Method invocation may produce java.lang.nullpointerexception".
What should be used instead of getSupportActionBar()
?
getSupportActionBar().setDisplayShowHomeEnabled(true);
Should say
if (getSupportActionBar() != null)
{
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
getSupportActionBar() can return null so you the hint is telling you about this.
I found another way, using AppCompatDelegate:
getDelegate().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
If you're extending a Theme.AppCompat
which has an action bar or have called setSupportActionBar(...)
yourself, calling getSupportActionBar()
is safe.
To get around the warning do a null check or
assert getSupportActionBar() != null;
which will throw an exception if the expression is not true. Both have their uses.
Are using NoActionBar
in styles? Verify your style.xml
or you theme, if("NoActionBar") => nullpointer =D
来源:https://stackoverflow.com/questions/29899311/what-to-use-instead-of-getsupportactionbar-in-library-22