NullPointerException con android.support.v7.widget.Toolbar

Attualmente sto cercando di implementare un cassetto di navigazione nella mia applicazione. Sto avendo un problema con la barra degli strumenti essere nullo. Ho effettuato molte ricerche online e ho tentato molte soluzioni diverse senza alcun risultato. Non ho ancora finito di scrivere tutto il codice, ma non posso lanciare la mia applicazione per controllare il cassetto di navigazione. Qualcuno può vedere where sono andato storto?

Se c'è qualcos'altro che devo postare, dimmi.

  • Voci di elenco persistenti in ListAdapter in configurationChanges con setRetainInstance
  • Come eseguire il debug di script UIAutomator con Eclipse
  • Cambia frammento con ViewPager
  • Come aprire l'attività già aperta invece di creare una nuova?
  • Come controllare Wifi è connesso, ma non è ansible accedere a Internet in Android
  • Non vedere Android SDK e AVD Manager quando eseguire il command android tool
  • Ho incluso questo su tutte le mie schermate di attività

    <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> 

    linea 72 di MainActivity

     setSupportActionBar(mToolbar); 

    Attività principale

     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) 

    Principale attività 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> 

  • Errore: il tag <item> richiede un attributo "drawable" o un tag figlio che definisce un disegnatore
  • Accedere a Retrofit 2.0
  • Esegui emulatore di studio Android sul processre AMD
  • Barra di stato del cassetto di navigazione
  • Test in modalità "Aereo" in Android Emulator
  • Ottenere un tipo di mime di file utilizzando PhoneGap / JavaScript
  • 12 Solutions collect form web for “NullPointerException con android.support.v7.widget.Toolbar”

    Impostare l'attributo id nella Toolbar degli Toolbar xml come segue:

     <?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> 

    Poi rimuoverlo dal block include modo che assomiglia a questo:

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

    E per semplificare ulteriormente è ansible rimuovere completamente il block di inserimento e semplicemente inserire la Toolbar degli Toolbar direttamente nel xml where era include .

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

    android.support.v7.widget.Toolbar.getTitle () su un riferimento di null si verifica a causa di scontri di titolo tra ids e quello dell'ID nella definizione toolbar.xml. Per superare questo problema rimuovere l'id come riportto di seguito e l'ultimo progetto di materiale Lollipop funziona bene con la barra degli strumenti

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

    Ho risolto il problema con la barra degli strumenti. Mi sono reso conto dopo ore di ricerca sul web e cercare cose diverse, ho capito che il mio codice non era sbagliato, stava utilizzando layout dal layout-21 e non la cartella di layout dopo l'emulazione per Android 5.0. Tutte le modifiche che avevo fatto erano nella cartella di layout. Ho apportto le modifiche ai file xml nella cartella layout-21 e il problema è stato risolto. Ci dispiace per il tempo sprecato e il post.

    Quando ho avuto questo problema, ho configurato il layout dell'attività e della barra degli strumenti con gli stessi ID

    Sono stato colpito dalla stessa questione e nessuna delle risposte ha funzionato per me, avevo dimenticato di includere il layout della barra degli strumenti nell'attività.

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

    Nel mio caso, avevo usato

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

    in cima al mio codice ma dimenticato di fare

     ButterKnife.bind(this); 

    interno metodo onCreate()

    Spero che aiuta qualcuno

    Ricorda di aggiungere

      compile 'com.jakewharton:butterknife:7.0.1' 

    alle dependencies build.gradle e all'importzione

     import butterknife.Bind; import butterknife.ButterKnife; 

    nel tuo codice java e ricostruisci la tua applicazione.

    Ho avuto un problema con la barra degli strumenti che non era di support.v7 voglio dire che devi aggiungere android.support.v7.widget. prima del cast ti rendi conto quando troverai Toolbar con ID …

    Nel mio caso stavo cercando di accedere alla Toolbar degli Toolbar all'interno di un metodo onAttach() di un frammento invece di onActivityCreated() , con conseguente NullPointerException .

    La risposta è un po 'tardi, ma ho appena incontrato questo problema.

    Ho avuto una questione simile e ho trascorso 7 ore in disparte con esso. Ha lavorato su 3 delle 4 attività semplicemente bene ma si sarebbe arrestato.

    L'unica cosa che ha funzionato per me, e non so perché, whereva mettere:

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

    come ultimo codice nel mio onCreate. Funziona adesso perfettamente.

    controllare sia la linea che la chiamata è ok o no

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

    Un'altra causa ansible è l'utilizzo di un layout errato in setContentView(R.layout.yourLayout)

    Ho letto un'altra volta il tuo codice … e ho visto che non hai definito l'ID della tua barra degli strumenti nel tuo MainActivity XML … vedi il tuo include:

     <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" /> 

    Dopo di che … non otterrai questo errore perché la tua barra degli strumenti è finalmente trovata e non è impostata su 'null'.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.