FindViewById (R.id.drawer_layout) devuelve null

Tengo un problema con la línea siguiente:

mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 

devolviendo null.

Para propósitos de depuración, he probado el archivo XML que se encuentra en el tutorial oficial de Android DrawerLayout:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The main content view --> <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- The navigation drawer --> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout> 

Y esta es la parte superior de mi FragmentActivity archivo:

 import org.json.JSONException; import org.json.JSONObject; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.app.FragmentActivity; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.widget.DrawerLayout; import android.util.Log; import android.view.View; import android.widget.Toast; public class PuzzleAllActivity extends FragmentActivity { private ProgressDialog dialog; private ActionBarDrawerToggle mDrawerToggle; private DrawerLayout mDrawerLayout; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_puzzle_all); mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); if(mDrawerLayout == null){ Log.d("DEBUG", "Drawer layout is null"); } mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.menu_icon, R.string.drawer_open, R.string.drawer_close) { public void onDrawerClosed(View view) { //getActionBar().setTitle(mTitle); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) { invalidateOptionsMenu(); } } public void onDrawerOpened(View drawerView) { //getActionBar().setTitle(mDrawerTitle); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) { invalidateOptionsMenu(); } } }; mDrawerLayout.setDrawerListener(mDrawerToggle); 

Por alguna razón, mDrawerLayout es null, lo que me da una java.lang.NullPointerException para la última línea:

 mDrawerLayout.setDrawerListener(mDrawerToggle); 

Soy relativamente nuevo en la programación de Android y no tengo ni idea de lo que podría causar este problema.

Me he cerciorado de que las bibliotecas de la ayuda en la trayectoria de la estructura del proyecto estén comprobadas.

Este es el error que obtengo:

 02-15 22:12:03.712: E/AndroidRuntime(17259): FATAL EXCEPTION: main 02-15 22:12:03.712: E/AndroidRuntime(17259): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.puzzleall.puzzleall/com.puzzleall.puzzleall.PuzzleAllActivity}: java.lang.NullPointerException 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread.access$700(ActivityThread.java:150) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.os.Handler.dispatchMessage(Handler.java:99) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.os.Looper.loop(Looper.java:176) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread.main(ActivityThread.java:5279) 02-15 22:12:03.712: E/AndroidRuntime(17259): at java.lang.reflect.Method.invokeNative(Native Method) 02-15 22:12:03.712: E/AndroidRuntime(17259): at java.lang.reflect.Method.invoke(Method.java:511) 02-15 22:12:03.712: E/AndroidRuntime(17259): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 02-15 22:12:03.712: E/AndroidRuntime(17259): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 02-15 22:12:03.712: E/AndroidRuntime(17259): at dalvik.system.NativeStart.main(Native Method) 02-15 22:12:03.712: E/AndroidRuntime(17259): Caused by: java.lang.NullPointerException 02-15 22:12:03.712: E/AndroidRuntime(17259): at com.puzzleall.puzzleall.PuzzleAllActivity.onCreate(PuzzleAllActivity.java:71) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.Activity.performCreate(Activity.java:5267) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 02-15 22:12:03.712: E/AndroidRuntime(17259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 

Aprecio cualquier ayuda que pueda obtener 🙂

La excepción NullPointer fue causada por diferentes archivos de diseño ("layout" y "layout-land").

La versión de Landscape tenía un archivo de diseño antiguo sin un DrawerLayout. Así que cuando se infla, tengo una excepción NullPointer cuando se refiere a la DrawerLayout.

  • Cómo utilizar el widget de NumberPicker Android 4.0
  • Envío de una solicitud JSON HTTP POST desde Android
  • Dónde colocar los archivos de texto en el directorio de Android
  • ¿Cómo instalar Google Play Services en el dispositivo Genymotion 6.0?
  • Explicación del método getPixels para un mapa de bits en Android
  • Cómo mostrar y establecer el evento de clic en Flecha de retroceso en la barra de herramientas
  • Anclaje inverso de Android sobre usb (no raíz)
  • Room: el directorio de exportación de esquemas no se proporciona al procesador de anotaciones, por lo que no podemos exportar el esquema
  • Cómo reemplazar la etiqueta <br \ />
  • Error de sincronización Gradle: no se puede encontrar el método
  • Falla de confiabilidad de la aplicación en la aplicación v3
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.