Błąd podczas pompowania klasy android.support.v7.widget.Toolbar?


82

Próbuję uzyskać Material Design dla mojej aplikacji, postępując zgodnie z tą metodą .

Za każdym razem, gdy uruchamiam aplikację, pojawia się następujący błąd:

Błąd podczas pompowania klasy android.support.v7.widget.Toolbar.

Sprawdziłem, czy poprawnie dodałem appcompat. Ale to wszystko jest dla mnie poprawne. Więc proszę powiedz mi, co robię źle?

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.2'

    defaultConfig {
        applicationId "io.bxbxbai.feedlistviewdemo"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles 'proguard-rules.pro'
        }
    }
}

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':materialDesign')
    compile 'com.balysv.materialmenu:material-menu:1.4.0'
    compile 'com.android.support:appcompat-v7:21.+'
}

Logcat

02:11.641  20583-20583/io.bxbxbai.feedlistviewdemo E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: io.bxbxbai.feedlistviewdemo, PID: 20583
    java.lang.RuntimeException: Unable to start activity ComponentInfo{io.bxbxbai.feedlistviewdemo/io.bxbxbai.androiddemos.MainActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class android.support.v7.widget.Toolbar
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2224)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class android.support.v7.widget.Toolbar
            at android.view.LayoutInflater.createView(LayoutInflater.java:620)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NoSuchMethodError: android.support.v4.content.ContextCompat.getDrawable
            at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:133)
            at android.support.v7.internal.widget.TintTypedArray.getDrawable(TintTypedArray.java:62)
            at android.support.v7.widget.Toolbar.<init>(Toolbar.java:248)
            at android.support.v7.widget.Toolbar.<init>(Toolbar.java:190)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)

EDYTOWAĆ

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark"/>

activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        tools:ignore="MergeRootFrame">

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

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn_feed_list_demo"
            android:text="@string/feed_list_demo"/>

    </RelativeLayout>

@GabrieleMariotti See the Edit ..
— AruLNadhaN

Miałem również ten problem i po chwili zdałem sobie sprawę, że po prostu zapomniałem zrobić MyActivity rozszerzającego ActionBarActivity zamiast Activity. Może komuś pomóc
— MathieuMaree

@ArulNadhan, czy znalazłeś rozwiązanie? Mam ten sam problem.
— William Grand

@WilliamGrand Zobacz odpowiedź ...
— AruLNadhaN

1
Dla mnie błędem było to, że używałem <android.widget.Toolbar /> zamiast <android.support.v7.widget.Toolbar />
— Ajith Memana

Odpowiedzi:


74

Jeśli używasz nowych implementacji androidx , podczas wpisywania paska narzędzi Studio automatycznie uzupełni je do android.support.v7.widget.Toolbar, ale powinieneś użyć androidx.appcompat.widget.Toolbarzamiast tego, w przeciwnym razie pojawi się ten błąd.


@Gudin, gdzie naprawdę są opisane te zależności?
— bzal

2
Dokumentacja na ten temat zdecydowanie nie jest aktualizowana i zawiera androidx. Dziękujemy za tę odpowiedź!
— Aman Alam

Niesamowite, że to wciąż jest rzecz. Dzięki za Twój post, zaoszczędził dużo czasu.
— William T. Mallard

37

Przepraszam chłopaki. Już dawno rozwiązałem ten problem. Zrobiłem wiele zmian. Więc nie mogę dowiedzieć się, który z nich działa.

  1. Zmieniłem identyfikator zgodnie z sugestią Jareda Burrowsa.

  2. Usunąłem bibliotekę pomocy technicznej, wyczyściłem projekt i ponownie go dodałem.

  3. Idź do Plik -> Unieważnij pamięci podręczne / Uruchom ponownie.

Mam nadzieję, że to działa.

Tak wygląda teraz mój kod

activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/toolbar_actionbar"
        layout="@layout/toolbar_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar_actionbar">

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <fragment
            android:id="@+id/fragment_drawer"
            android:name="com.arul.anahy.drawer.NavigationDrawerFragment"
            android:layout_width="@dimen/navigation_drawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:layout="@layout/fragment_navigation_drawer"/>
    </android.support.v4.widget.DrawerLayout>
</RelativeLayout>

toolbar_default.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    style="@style/ToolBarStyle"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="@dimen/abc_action_bar_default_height_material"/>

ToolBarStyle

<style name="ToolBarStyle" parent="">
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
        <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
 </style>

W moim przypadku zrobiłem 3 krok, jak zasugerowałem w powyższej odpowiedzi.
— Gem

@dimen/abc_action_bar_default_height_materialjest oznaczony jako prywatny. Tylko ostrzeżenie, które można zignorować?
— hgoebl

Zastąpienie parent = "AppTheme.NoActionBar" na parent = "" rozwiązało mój problem.
— Gurvinder Singh

29

Zdarzyło mi się to, gdy próbowałem użyć mojego starszego kodu w nowym Androidzie z implementacjami Androidx. zmień swoją definicję XML na;

<androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
            app:titleTextColor="@android:color/white" />

następnie w swoim kodzie java;

import androidx.appcompat.widget.Toolbar;

1
Dzięki, stary, to była odpowiedź, której szukałem :)
— Mukesh Chauhan

24

Udało mi się rozwiązać ten problem, zastępując następujące:

W układzie paska narzędzi zamień wszystko, co wygląda tak:

android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"

z

android:minHeight="@dimen/abc_action_bar_default_height_material"
android:background="@color/myColor"

Dziękuję za odpowiedź.
— Meher

android: background = "? attr / colorPrimary" to należy usunąć, ponieważ pasek narzędzi nie lubi żadnych elementów materialnych, które mają być zaangażowane
— TSG anti SO dark force

dla api 19 i niższych
— TSG anti SO dark force

Wielkie dzięki, uratowałeś mi dzień
— akhil


6

Miałem ten sam problem, co przy korzystaniu z wersji 23.2.0 biblioteki AppCompat. Zaktualizowałem bibliotekę pomocy do wersji 23.2.1 i problem został rozwiązany.

Ten problem z paskiem narzędzi został rozwiązany w 23.2.1


może to być najbardziej aktualna poprawka. zaktualizuj swój sdk.
— ralphgabb

2
W 23.3.0 widzę raporty o awariach tylko dla użytkowników z 4.4.2
— Gillis Haasnoot

5

Przeczytaj ten post na blogu Google: http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

<android.support.v7.widget.Toolbar
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

Ponadto dwukrotnie nadajesz mu ten sam „identyfikator”, usuń „identyfikator” z listy:

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

1
Dlaczego miałbyś usunąć przestrzeń nazw? Ponadto, w odniesieniu do dwóch odniesień do identyfikatorów, jeden identyfikator odnosi się do wystąpienia paska narzędzi w układzie, a drugi jest identyfikatorem zasobu. Więc myślę, że potrzebujesz obu.
— William Grand

@WilliamGrand Nie jestem pewien, kiedy „edytował” swój post. Teraz widzę, że jego pasek narzędzi znajduje się w oddzielnym pliku, pozostawienie przestrzeni nazw jest w porządku. Istnieją dwa takie same „identyfikatory”, a on używa dołączenia, aby wprowadzić ten układ do innego układu. Nie potrzebuje „identyfikatora” na załączniku.
— Jared Burrows

1
Identyfikator dołączenia po prostu zastąpi identyfikator użyty dla tego elementu w układzie po jego zawyżeniu; to jest cecha włączania. Dopóki używa prawidłowego identyfikatora w swoim kodzie, nie powinno to niczego boleć.
— Lorne Laliberte

3

Mam ten sam problem, ale to było po aktualizacji do appcompatv23.2.0. Wypróbowałem wszystkie powyższe sugestie, ale nie działały. Następnie przeszedłem do mojego pliku Gradle i zastąpiłem:

dependencies {
compile 'com.android.support:appcompat-v7:23.2.0’
compile 'com.android.support:design:23.2.0'

}

z:

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}

Odbuduj projekt i problem zniknął. Może to być problem z aplikacją kompaktową w wersji 23.2.0, mam nadzieję, że pojawi się lepsze rozwiązanie, które pozwoli nam pracować z nową aktualizacją.

Mam nadzieję że to pomoże. Dziękuję Ci.


compile 'com.android.support:design:23.0.1'ten kod rozwiązał mój problem
— Mohammed Tawfik

3

Rozwiązałem ten problem, modyfikując plik build.gradle aplikacji.

Dla wtyczki Gradle 2.0+

 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }  

Dla wtyczki Gradle 1.5

 android {  
   defaultConfig {  

     generatedDensities = []  
  }  

  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 } 

3

Wiem, że to stare pytanie, ale ostatnio napotkałem ten sam problem. Skończyło się to problemem Proguard (kiedy ustawić minifyEnabledaby falsezatrzymał się dzieje).

Aby to zatrzymać, z włączonym proguardem, dodałem do mojego pliku reguł programu proguard, dzięki rozwiązaniu, które znalazłem gdzie indziej (po odkryciu, że problem był proguard)

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

Nie jestem pewien, czy są konieczne, ale dodałem też te wiersze:

-keep class com.google.** { *; }
-keep interface com.google.** { *; }

2
Pomogło mi to, ponieważ otrzymuję ten błąd tylko w kompilacji wydania.
— Rahul Chandrabhan

1

Miałem ten sam problem. Rozwiązanie, które zadziałało dla mnie. Jeśli używasz v7.Toolbar, musisz użyć motywu rozszerzonego z Theme.AppCompat. * Nie możesz użyć motywu rozszerzonego z android: Theme.Material. *, Ponieważ mają one inne atrybuty stylu.

Mam nadzieję, że to pomoże.


1

Usunąłem te linie, jak poniżej:

przed :

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar1"
    android:layout_width="match_parent"
    android:layout_height="@attr/actionBarSize"
    android:minHeight="@attr/actionBarSize"
    android:layout_alignParentTop="true" >

po :

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true" >

Zamiast "@ attr / actionBarSize" wstaw określone wymiary, to działa dla mnie.


1

Aby rozwiązać ten problem. najpierw musisz dodać latestandroid-support-v7-appcompat z \ sdk \ extras \ android \ support

  1. Zamknij główny projekt.
  2. Usuń plik android-support-v7-appcompat.
  3. Uruchom ponownie Eclipse.
  4. Dodaj plik android-support-v7-appcompat.
  5. Czyste, aby zbudować projekt.
  6. Następnie otwórz główny projekt i skompiluj wszystkie projekty.
  7. Błąd nadal występuje. Uruchom ponownie zaćmienie. Otóż ​​to.

U mnie to działa i zdecydowanie polecam korzystanie z Android Studio.


1

To zadziałało dla mnie: Dodaj kompilację „com.android.support:appcompat-v7:21.0.3” do gradle. Zmień docelową wartość SDK na 21. Mam nadzieję, że to działa dla Ciebie!


1

U mnie zadziałało po tym, jak:

  • Roztwór czyszczący.
  • Usuwanie aplikacji z telefonu, na którym ją debugowałem.
  • Zamykanie programu Visual Studio.
  • Usuwanie folderów / bin / i / obj / w projektach Androida.
  • Ponownie uruchamiam rozwiązanie.

1

Żadne z powyższych rozwiązań nie zadziałało.

Nie miałem paska narzędzi w moim projekcie, ale pojawił się ten sam błąd.

Wyczyściłem projekt, odinstalowałem aplikację. Następnie uruchomiłem kompilację gradlew --refresh-dependencies i odkryłem, że w plikach xml były zdarzenia onclick bez odpowiedniego kodu.

Usunąłem je, przebudowałem projekt i zadziałało.

Wyglądało na to, że zależności nie zostały zaktualizowane, ale to już inna historia.


1

W przypadku platformy Xamarin w VS należy dodać

Theme = "@style/MyThemesss"

do youractivity.cs.

Dodaję to i kontynuuję.


1

W moim przypadku otrzymałem ten błąd w wyjątku inflacji w Imageview, w niższych wersjach i Lollipop OS.

Rozwiązałem ten wyjątek podczas przenoszenia całego pliku obrazu z folderu do rysowania w wersji 24 do folderu do rysowania.


0

Miałem problemy z włączaniem paska narzędzi w RelativeLayout, spróbuj z LinearLayout. Jeśli chcesz nałożyć pasek narzędzi, spróbuj:

 <RelativeLayout>

    <LinearLayout>
      --INCLUDE tOOLBAR--
    </LinearLayout>

    <Button></Button>

 </RelativeLayout>

Nie rozumiem dlaczego, ale to działa dla mnie.


0

Nie jest jasne, dlaczego ten błąd wystąpił u mnie, ale rozwiązałem. Użyłem tego samego układu, in-line lub używając include, oba powodują błąd NPE. Więc myślę, że to nie jest problem z układem.

Miałem abstrakcyjne wywołanie klasy BaseActivity rozszerza ActionBarActivity, które mają metodę initActionBar (). Nadpisuję i wywołuję tę metodę w OnCreate klasy potomnej. Coś w tym stylu:

android.support.v7.app.ActionBar mActionBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book_appointment);

    // Inject View using ButterKnife
    ButterKnife.inject(this);

    // Init toolbar & status bar
    initActionBar();
}

@Override
protected void initActionBar() {
    super.initActionBar();

    setSupportActionBar(mToolBar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mActionBar = getSupportActionBar();
    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);
}

MIAŁEM BŁĄD NPE Z POWYŻSZYM KODEM. NIE WIEM, DLACZEGO Mylę się. ROZWIĄZAAM PONIŻSZY KOD I WYGLĄDA TAK SAMO.

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book_appointment);
    ButterKnife.inject(this);

    setSupportActionBar(mToolBar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mActionBar = getSupportActionBar();
    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);

    initActionBar();
}

@Override
protected void initActionBar() {
    super.initActionBar();
}

0

W moim przypadku problem polegał na wywołaniu inflater.inflate (R.layout.some_layout, null). Problem był pusty, ponieważ parametr ViewGroup.


0

Rozwiązanie problemu zostało znalezione w dokumencie XML dla mojego głównego działania. Pierwotnie mój pasek narzędzi był <android.support.v7.widget.Toolbar. Aby rozwiązać ten problem, zmieniłem go na <android.widget.Toolbar. Nie wiem jednak, dlaczego to zadziałało. Czy ktoś ma pojęcie, dlaczego?


<android.support.v7.widget.Toolbar ma obsługiwać urządzenia sprzed wersji Lollipop. Możesz to przeczytać android-developers.blogspot.in/2014/10/…
— Sagar Devanga

0

Problem dotyczył urządzeń pre-lolipop. Udało mi się rozwiązać ten problem, zastępując następujące:

W układzie paska narzędzi zamień wszystko, co wygląda tak:

android:layout_height="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"

z

android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"

0

U mnie błąd polegał na tym, że miałem:

    <android:support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"/>

zamiast:

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"/>

Konkretnie, zamiast kropki w pierwszym wierszu znajdował się dwukropek między słowami „android” i „wsparcie”.


Nie wiem, jak to mogłoby komukolwiek pomóc.
— ichalos

@ichalos może służyć jako bezpłatna alternatywa dla zone.msn.com/en/spotthedifference
— obe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.