Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


NullPointerException con android.support.v7.widget.Toolbar

Actualmente estoy intentando implementar un cajón de navegación en mi aplicación. Tengo un problema con la barra de herramientas siendo nulo. He hecho muchas búsquedas en línea y probado muchas soluciones diferentes sin éxito. No he terminado de escribir todo el código, pero no puedo iniciar mi aplicación para revisar el cajón de navegación. ¿Puede alguien ver dónde me equivoqué?

Si hay algo más que necesito publicar, hágamelo saber.

Incluí esto en todas las pantallas de mi actividad

<include android:id="@+id/app_bar" layout="@layout/app_bar"/> 

App_bar.xml

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" > </android.support.v7.widget.Toolbar> 

Línea 72 de MainActivity

 setSupportActionBar(mToolbar); 

Actividad principal

 public class Trans_List extends ActionBarActivity { private Toolbar mToolbar; private CharSequence mTitle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_trans_list); mToolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.left_drawer); drawerFragment.setUp((DrawerLayout) findViewById(R.id.drawer_layout), mToolbar); 

Style.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" > <item name="windowActionBar">false</item> </style> <style name="Theme.split" parent="AppBaseTheme"> </style> <style name="dialog_custom" parent="@style/Theme.AppCompat.Dialog"> <item name="@android:listPreferredItemPaddingLeft">20dip</item> <item name="@android:listPreferredItemPaddingRight">20dip</item> <item name="@android:listPreferredItemPaddingStart">20dip</item> <item name="@android:listPreferredItemPaddingEnd">20dip</item> </style> </resources> 

LogCat

 01-07 01:14:29.702 4811-4811/com.lee.yuchan.splt E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.lee.yuchan.splt, PID: 4811 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lee.yuchan.splt/com.lee.yuchan.splt.Trans_List}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.support.v7.widget.Toolbar.getTitle()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.support.v7.widget.Toolbar.getTitle()' on a null object reference at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:95) at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:88) at android.support.v7.internal.app.ToolbarActionBar.<init>(ToolbarActionBar.java:84) at android.support.v7.app.ActionBarActivityDelegateBase.setSupportActionBar(ActionBarActivityDelegateBase.java:175) at android.support.v7.app.ActionBarActivity.setSupportActionBar(ActionBarActivity.java:92) at com.lee.yuchan.splt.Trans_List.onCreate(Trans_List.java:72) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)            at android.app.ActivityThread.access$800(ActivityThread.java:144)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)            at android.os.Handler.dispatchMessage(Handler.java:102)            at android.os.Looper.loop(Looper.java:135)            at android.app.ActivityThread.main(ActivityThread.java:5221)            at java.lang.reflect.Method.invoke(Native Method)            at java.lang.reflect.Method.invoke(Method.java:372)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

Actividad principal XML

  <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The main content view --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/app_bar"/> <TextView android:id="@+id/selectItems" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/select_instr1" android:textSize="20sp" android:gravity="center" android:paddingTop="4sp" android:paddingBottom="10sp" > </TextView> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" > </ListView> <Button android:id="@+id/buttonChecked" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="0dip" android:background="@drawable/custom_button" android:textColor="#ffffff" android:text="@string/next_button" /> </LinearLayout> <!-- The navigation drawer --> <fragment android:id="@+id/left_drawer" android:layout_width="@dimen/nav_dr" android:layout_height="match_parent" android:layout_gravity="start" app:layout="@layout/fragment_navigation_drawer" android:name="com.lee.yuchan.splt.NavigationDrawerFragment" tools:layout="@layout/fragment_navigation_drawer" /> </android.support.v4.widget.DrawerLayout> 

  • Efecto de ruido en el fondo de Android
  • ¿Javax.crypto trabaja diferentemente en diversas versiones de OS androide?
  • ¿Cómo leer un archivo de texto del directorio "assets" como una cadena?
  • Agrupa las trazas de pila de Java / Android en cubos únicos
  • El teclado virtual cubre un EditText en un PopupWindow
  • Creación de Hashmap desde una cadena JSON
  • Android Email EditText Validación
  • ¿Cómo llamar a la función con callbacks en Java como lo hago en C #?
  • 12 Solutions collect form web for “NullPointerException con android.support.v7.widget.Toolbar”

    Establecer el atributo id en la Toolbar xml como este:

     <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/app_bar" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" > </android.support.v7.widget.Toolbar> 

    A continuación, quítelo del bloque de include para que se vea así:

     <include layout="@layout/app_bar"/> 

    Y para simplificar aún más, puede quitar el bloque de include completamente y simplemente insertar la Toolbar directamente en el xml donde se include .

     <include android:id="@+id/toolbar" layout="@layout/tool_bar"/> 

    Android.support.v7.widget.Toolbar.getTitle () en una referencia de objeto nulo ocurre debido a los choques de título entre ids de y el de id en la definición toolbar.xml. Para superar este problema elimine el id en como se muestra a continuación y el diseño del material Lollipop más reciente funcionará bien con la barra de herramientas

     <include layout="@layout/tool_bar"/> 

    Resolví el problema con la barra de herramientas. Me di cuenta después de horas de buscar en la web y probar cosas diferentes, me di cuenta de que mi código no estaba mal, que estaba usando layouts de la distribución-21 no la carpeta de diseño desde la emulación para Android 5.0. Todas las modificaciones que había hecho estaban en la carpeta de diseño. Hice los cambios en los archivos xml en la carpeta layout-21 y el problema se solucionó. Lo siento por el tiempo perdido y publicar.

    Cuando tuve este problema, configuré el diseño de la actividad y de la barra de herramientas con id

    Me sorprendió con el mismo problema y ninguna de las respuestas funcionó para mí, me había olvidado de incluir el diseño de la barra de herramientas en la actividad.

     <include layout="@layout/toolbar"/> 

    En mi propio caso, había utilizado

     @Bind(R.id.toolbar) protected Toolbar toolbar; 

    En la parte superior de mi código, pero se olvidó de hacer

     ButterKnife.bind(this); 

    Dentro del método onCreate()

    Espero que ayude a alguien

    Recuerde agregar

      compile 'com.jakewharton:butterknife:7.0.1' 

    build.gradle dependencias de build.gradle e importar

     import butterknife.Bind; import butterknife.ButterKnife; 

    En tu código java y reconstruir tu aplicación.

    Tuve un problema con la barra de herramientas que no era de support.v7 Quiero decir que debe agregar android.support.v7.widget. Antes de que el reparto te das cuenta al encontrar la Toolbar con ID …

    En mi caso, estaba tratando de acceder a la Toolbar en el método onAttach() de un fragmento en lugar de onActivityCreated() , lo que resulta en NullPointerException .

    La respuesta es un poco tarde pero me encontré con este problema.

    Tuve un problema similar y pasé 7 horas jugando con él. Funcionó en 3 de 4 actividades bien pero uno se estrellaría.

    Lo único que funcionó para mí, y no estoy seguro de por qué, fue poner el:

      mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); 

    Como el último código en mi onCreate. Funciona perfectamente ahora.

    Compruebe si la llamada de línea está bien o no

      setContentView(R.layout.layout_file) toolbar = (Toolbar) findViewById(R.id.toolbar_top) 

    Otra causa posible es usar un diseño incorrecto en setContentView(R.layout.yourLayout)

    He leído otra vez su código … y vi que no ha definido el ID de su barra de herramientas en su MainActivity XML … ver su inclusión en ella:

     <include layout="@layout/app_bar" /> <!-- But where's ID attribute here ? --> <!-- add android:id="@+id/app_bar" --> <!-- to finally have below : --> <include layout="@layout/app_bar" android:id="@+id/app_bar" /> 

    Después de eso … no obtendrá este error porque su barra de herramientas finalmente se encuentra y no está configurada como 'null'.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.