NullPointerException Causado por getActionBar ()

Al intentar configurar el Cajón de navegación de una aplicación en este momento, y cada vez que intento ejecutar la aplicación en mi dispositivo Android, obtengo una NullPointerException. El error es causado por getActionBar.setDisplayHomeUpAsEnabled(true) y getActionBar.setHomeButtonEnabled(true)

Incluso si elimino estas dos líneas de código, sigo recibiendo un error.

¿Cómo puedo solucionar esto rápidamente?

Código:

 import android.app.Activity; import android.app.Fragment; import android.content.res.Configuration; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.support.v7.app.ActionBarDrawerToggle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private String[] navDrawerTitles; private DrawerLayout navDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mTitle; Fragment fragment = new Fragment(); private Fragment blankFrag = new Fragment(); private final int POSITION = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); navDrawerTitles = getResources().getStringArray(R.array.nav_array); navDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); // Set the adapter for the list view mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, navDrawerTitles)); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); navDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */ navDrawerLayout, /* DrawerLayout object */ //R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description */ R.string.drawer_close /* "close drawer" description */ ) { /** Called when a drawer has settled in a completely closed state. */ public void onDrawerClosed(View view) { // super.onDrawerClosed(view); getActionBar().setTitle(R.string.app_name); invalidateOptionsMenu(); } /** Called when a drawer has settled in a completely open state. */ public void onDrawerOpened(View drawerView) { // super.onDrawerOpened(drawerView); getActionBar().setTitle(R.string.app_name); invalidateOptionsMenu(); } }; // Set the drawer toggle as the DrawerListener navDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { selectItem(0); } } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu); return super.onCreateOptionsMenu(menu); } /* Called whenever we call invalidateOptionsMenu() */ @Override public boolean onPrepareOptionsMenu(Menu menu) { // If the nav drawer is open, hide action items related to the content // view boolean drawerOpen = navDrawerLayout.isDrawerOpen(mDrawerList); menu.findItem(R.id.action_settings).setVisible(!drawerOpen); return super.onPrepareOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { // Pass the event to ActionBarDrawerToggle, if it returns // true, then it has handled the app icon touch event if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(position); } } /** Swaps fragments in the main content view */ /** * Starts an Activity when item is clicked */ private void selectItem(int position) { // } Bundle args = new Bundle(); args.putInt(StartingFragment.TEA_TYPE_POS, position); fragment.setArguments(args); // Highlight the selected item, update the title, and close the drawer mDrawerList.setItemChecked(position, true); // setTitle(navDrawerTitles[position]); navDrawerLayout.closeDrawer(mDrawerList); } @Override public void setTitle(CharSequence title) { mTitle = title; getActionBar().setTitle(mTitle); } /** * When using the ActionBarDrawerToggle, you must call it during * onPostCreate() and onConfigurationChanged()... */ @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } } 

01-31 14: 11: 11.298: E / AndroidRuntime (20904): FATAL EXCEPTION: principal 01-31 14: 11: 11.298: E / AndroidRuntime (20904): Proceso: appathon.bu.com.appathon, PID: 20904 01 -31 14: 11: 11.298: E / AndroidRuntime (20904): java.lang.RuntimeException: No se puede iniciar la actividad ComponentInfo {appathon.bu.com.appathon / appathon.bu.com.appathon.MainActivity}: java.lang. NullPointerException 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2212) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android .app.ActivityThread.handleLaunchActivity (ActivityThread.java:2271) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.ActivityThread.access $ 800 (ActivityThread.java:144) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1205) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.os.Handler .dispatchMessage (Handler.java:102) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.os.L Ooper.loop (Looper.java:136) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.ActivityThread.main (ActivityThread.java:5146) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en java.lang.reflect.Method.invokeNative (Método nativo) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en java.lang.reflect.Method.invoke (Method. Java: 515) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:796) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en com.android.internal.os.ZygoteInit.main (ZygoteInit.java:612) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en dalvik.system.NativeStart.main (Método nativo) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): Causado por: java.lang.NullPointerException 01-31 14: 11: 11.298: E / AndroidRuntime (20904): at appathon.bu.com .appathon.MainActivity.onCreate (MainActivity.java:45) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.Activity.performCreate (Activity.java:5231) 01-31 14:11 : 11.298: E / AndroidR Untime (20904): en android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): en android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2169 ) 01-31 14: 11: 11.298: E / AndroidRuntime (20904): … 11 más

En primer lugar, si getActionBar() en una Activity devuelve null , entonces no tiene una barra de acción nativa en su actividad.

Segundo, android.support.v7.app.ActionBarDrawerToggle no funciona con la barra de acción nativa. Funciona con el backport de la barra de acción appcompat-v7 . Si vas a usar android.support.v7.app.ActionBarDrawerToggle , entonces debes mover tu aplicación para usar appcompat-v7 :

  1. Añadir appcompat-v7 como una dependencia

  2. Heredar de ActionBarActivity lugar de Activity

  3. Llame a getSupportActionBar() lugar de getActionBar()

  4. Utilice Theme.AppCompat (o algo que hereda de él) como el tema de su actividad

  • ViewRootImpl.setPausedForTransition (boolean) NullPointerException en ActivityTransitionCoordinator cuando la transición a otra Actividad se invoca demasiado pronto
  • Inbuild de Android (ActionImageCapture) intento devuelve la intención nula. No puede entregar el resultado {who = null}
  • Android SDK Content Loader falla con NullPointerException
  • Actividad de captura de cámara Android devuelve null Uri
  • GetReadableDatabase a menudo, pero no siempre devuelve null
  • RecyclerViewAdapter.notifyDataSetChanged () en una referencia de objeto nulo
  • NullPointer en toLowerCase pero no uso ese método en ninguna parte
  • android spinner NullPointerException
  • Expectativa de puntero nulo al obtener valores de preferencia compartida
  • Captura de fotos La intención causa NullPointerException en los teléfonos Samsung solamente
  • - java.lang.NullPointerException - setText en la referencia de objeto nulo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.