FindViewById (R.id.drawer_layout) devuelve null
Tengo un problema con la línea siguiente:
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
devolviendo null.
- Cómo evitar que Autocompletar de Android Studio quita el token adyacente
- Pila extraña en el informe de fallo de android
- No puedo averiguar cómo usar un android PreferenciaActividad
- Android LoaderManager y CursorLoader Confusión
- Cómo quitar la biblioteca de soporte (appcompat_v7)
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 🙂
- Cómo pasar ObservableField dentro del control interno
- No se puede iniciar Eclipse - Java se inició pero devolvió el código de salida = 13
- Cómo mostrar las notificaciones Heads up android
- Leer WCF REST fecha de android
- GridView carga lento para los recursos de imagen grande
- BufferedReader mientras lee datos Json
- Estrategia de la aplicación de Android para realizar un seguimiento de una sesión de inicio de sesión
- Tipo no coincidente: no se puede convertir de StringBuilder a String
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.
- dirección o dirección no válida del bloque corrupto 0x7acd0bd0 pasado a dlfree
- Desplazamiento horizontal y vertical en android mediante matriz multidimensional