Mon application se bloque à la minute où je l'exécute après avoir changé mon AppCompat-v7 en 21.0.0 et compilé sans problème.
Cela me donne l'erreur:
Java.lang.NullPointerException: Attempt to invoke virtual method 'void Android.app.ActionBar.setIcon(int)' on a null object reference
sur cette ligne:
getActionBar().setIcon(R.drawable.ic_action_bar);
Il fonctionne avec AppCompat-v7 20.0.0, mais pas avec 21.0.0.
Vous devez appeler getSupportActionBar()
sur un ActionBarActivity
. N'appelez pas getActionBar()
- qui n'est pas disponible sur les appareils plus anciens, et pour la nouvelle édition r21 de appcompat-v7
, Je m'attendrais à ce qu'il renvoie null
tout le temps, car le nouveau ActionBarActivity
désactive et remplace la barre d'actions système.
Si votre activité est AppCompatActivity, vous pouvez obtenir la barre d'action comme ceci:
Android.support.v7.app.ActionBar mActionBar = getSupportActionBar();
Object actionBar = getSupportActionBar();
Android.support.v7.internal.app.WindowDecorActionBar bar = (Android.support.v7.internal.app.WindowDecorActionBar) actionBar;
Si vous développez une application ciblant 21SDK mais que l'application va être utilisée sous des sdk plus anciens, ces lignes ci-dessus sont la solution.
Vous ne pouvez pas utiliser getActionBar () sous 21SDK lorsque votre activité étend ActionBarActivity
Remplacez ActionBar par Android.support.v7.app.ActionBar dans tout votre code. et utilisez setSupportActionBar (). Etendez également votre activité depuis AppCompatActivity. utilisez Android supporte la dépendance v7.