Fehler beim Aufblasen der Klasse android.support.v7.widget.Toolbar?

82

Ich versuche, Material Design für meine App mithilfe dieser Methode zu erhalten .

Immer wenn ich die App starte, wird der folgende Fehler angezeigt:

Fehler beim Aufblasen der Klasse android.support.v7.widget.Toolbar.

Ich habe überprüft, ob ich den Appcompat richtig hinzugefügt habe. Aber es ist alles richtig für mich. Also sag mir bitte, was mache ich falsch?

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)

BEARBEITEN

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>
AruLNadhaN
quelle
@ GabrieleMariotti Siehe die Bearbeitung ..
AruLNadhaN
Hatte auch dieses Problem und erkannte nach einer Weile, dass ich einfach vergessen hatte, MyActivity ActionBarActivity anstelle von Activity erweitern zu lassen.
Könnte
@ArulNadhan, hast du eine Lösung gefunden? Ich habe das gleiche Problem.
William Grand
@ WilliamGrand Siehe die Antwort ...
AruLNadhaN
1
Für mich war der Fehler, dass ich <android.widget.Toolbar /> anstelle von <android.support.v7.widget.Toolbar /> verwendete
Ajith Memana

Antworten:

73

Wenn Sie neue Androidx- Implementierungen verwenden und die Symbolleiste eingeben, wird sie vom Studio automatisch vervollständigt.android.support.v7.widget.Toolbar Sie sollten sie jedoch androidx.appcompat.widget.Toolbarstattdessen verwenden, da sonst dieser Fehler angezeigt wird.

Gudin
quelle
@Gudin, wo sind diese Abhängigkeiten wirklich beschrieben?
Bzal
1
Die Dokumentation dazu wird definitiv nicht aktualisiert und enthält AndroidX. Danke für diese Antwort!
Aman Alam
Erstaunlich, dass das immer noch eine Sache ist. Vielen Dank für Ihren Beitrag, es hat viel Zeit gespart.
William T. Mallard
36

Tut mir leid, Leute. Ich habe dieses Problem vor langer Zeit gelöst. Ich habe viele Änderungen vorgenommen. Ich kann also nicht herausfinden, wer den Trick macht.

  1. Ich habe die ID geändert, wie von Jared Burrows vorgeschlagen.

  2. Meine Support-Bibliothek wurde entfernt, mein Projekt bereinigt und erneut hinzugefügt.

  3. Gehen Sie zu Datei -> Caches ungültig machen / neu starten.

Hoffe, es funktioniert.

So sieht mein Code jetzt aus

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>
AruLNadhaN
quelle
In meinem Fall habe ich den 3. Schritt gemacht, wie oben vorgeschlagen.
Gem
@dimen/abc_action_bar_default_height_materialist als privat markiert. Nur eine Warnung, die ignoriert werden kann?
Hgoebl
Das Ersetzen der parent = "AppTheme.NoActionBar" durch parent = "" hat mein Problem gelöst.
Gurvinder Singh
29

Dies passierte mir, als ich versuchte, meinen älteren Code in neuem Android mit AndroidX-Implementierungen zu verwenden. Ändern Sie Ihre XML-Definition in;

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

dann in Ihrem Java-Code;

import androidx.appcompat.widget.Toolbar;
Enock Lubowa
quelle
1
Danke, Bruder, das war die Antwort, nach der ich gesucht habe :)
Mukesh Chauhan
24

Ich konnte dieses Problem lösen, indem ich Folgendes ersetzte:

Ersetzen Sie im Symbolleistenlayout alles, was so aussieht:

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

mit

android:minHeight="@dimen/abc_action_bar_default_height_material"
android:background="@color/myColor"
mike.b93
quelle
Danke für die Antwort.
Meher
android: background = "? attr / colorPrimary" Dies muss entfernt werden, da in der Symbolleiste keine materiellen Elemente beteiligt sein sollen
TSG Anti SO Dark Forces
für API 19 und darunter
TSG Anti SO Dark Forces
Vielen Dank, Sie haben meinen Tag gerettet
akhil
6

Ich hatte das gleiche Problem wie bei der Verwendung der 23.2.0-Version von AppCompat Library. Ich habe die Suppport-Bibliothek auf 23.2.1 aktualisiert und das Problem wurde behoben.

Dieses Problem mit der Symbolleiste wurde in 23.2.1 behoben

iAviatorJose
quelle
Dies ist möglicherweise das aktuellste Update. Aktualisieren Sie Ihre SDK.
Ralphgabb
2
In 23.3.0 sehe ich Absturzberichte nur für Benutzer mit 4.4.2
Gillis Haasnoot
5

Bitte lesen Sie diesen Google Blog-Beitrag: 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" />

Außerdem geben Sie ihm zweimal dieselbe "ID". Entfernen Sie die "ID" aus Ihrem Include:

<include android:id="@+id/toolbar" layout="@layout/toolbar" />
Jared Burrows
quelle
1
Warum sollten Sie den Namespace entfernen? In Bezug auf zwei Verweise auf IDs bezieht sich eine ID auf die Instanz der Symbolleiste im Layout und die andere auf die Ressourcen-ID. Also, ich denke du brauchst beides.
William Grand
@ WilliamGrand Ich bin mir nicht sicher, wann er seinen Beitrag "bearbeitet" hat. Ich sehe jetzt, dass sich seine Symbolleiste in einer separaten Datei befindet und der Namespace in Ordnung bleibt. Es gibt zwei der gleichen "IDs" und er verwendet das Include, um dieses Layout in ein anderes Layout einzufügen. Er braucht die "ID" auf dem Include nicht.
Jared Burrows
1
Die ID auf dem Include überschreibt einfach die ID, die für dieses Element im Layout verwendet wird, sobald es aufgeblasen ist. das ist ein Merkmal von include. Solange er die richtige ID in seinem Code verwendet, sollte es nichts schaden.
Lorne Laliberte
3

Ich habe das gleiche Problem, aber das war, nachdem ich auf aktualisiert hatte appcompatv23.2.0. Ich habe alle oben genannten Vorschläge ausprobiert, aber es funktioniert nicht. Dann ging ich zu meiner Gradle-Datei und ersetzte:

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

}}

mit:

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

Erstellen Sie das Projekt neu und das Problem war behoben. Es könnte ein Problem mit App Compact v2.3.2.0 sein, hoffentlich eine bessere Lösung, damit wir mit dem neuen Update arbeiten können.

Hoffe das hilft. Vielen Dank.

nmvictor
quelle
compile 'com.android.support:design:23.0.1'Dieser Code löste mein Problem
Mohammed Tawfik
3

Ich habe dieses Problem behoben, indem ich die Datei app build.gradle geändert habe.

Für Gradle Plugin 2.0+

 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }  

Für Gradle Plugin 1.5

 android {  
   defaultConfig {  

     generatedDensities = []  
  }  

  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 } 
Pacific P. Regmi
quelle
3

Ich weiß, dass dies eine alte Frage ist, aber ich bin kürzlich auf dasselbe Problem gestoßen. Es endete als Proguard-Problem (als ich mich darauf einstellte minifyEnabled, falsehörte es auf zu passieren.)

Um dies zu stoppen, habe ich bei aktiviertem Proguard Folgendes zu meiner Proguard-Regeldatei hinzugefügt, dank einer Lösung, die ich an anderer Stelle gefunden habe (nachdem ich festgestellt habe, dass das Problem Proguard ist).

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

Ich bin mir nicht sicher, ob sie notwendig sind, aber ich habe auch folgende Zeilen hinzugefügt:

-keep class com.google.** { *; }
-keep interface com.google.** { *; }
Geil
quelle
2
Dies hat mir geholfen, da ich diesen Fehler nur beim Release-Build erhalte.
Rahul Chandrabhan
1

Ich hatte das gleiche Problem. Lösung, die für mich funktioniert hat. Wenn Sie v7.Toolbar verwenden, müssen Sie ein von Theme.AppCompat erweitertes Thema verwenden. * Sie können kein von android: Theme.Material. * Erweitertes Thema verwenden, da sie unterschiedliche Stilattribute haben.

Hoffe es wird hilfreich sein.

Vlad Hudnitsky
quelle
1

Ich habe diese Zeilen wie folgt entfernt:

Vor :

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

nach :

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

Anstelle von "@ attr / actionBarSize" setzen Sie bestimmte Dimensionen, es funktioniert für mich.

Prashant
quelle
1

Um dieses Problem zu beheben. Zuerst müssen Sie die neueste android-support-v7-appcompat aus dem \ sdk \ extras \ android \ support hinzufügen

  1. Schließen Sie das Hauptprojekt.
  2. Entfernen Sie den android-support-v7-appcompat.
  3. Starten Sie die Eclipse neu.
  4. Fügen Sie den android-support-v7-appcompat hinzu.
  5. Reinigen, um das Projekt zu erstellen.
  6. Öffnen Sie dann das Hauptprojekt und erstellen Sie alle Projekte.
  7. Der Fehler bleibt weiterhin bestehen. Starten Sie Eclipse neu. Das ist es.

Das funktioniert bei mir und ich werde Ihnen dringend empfehlen, Android Studio zu verwenden.

Hemant Shori
quelle
1

Dies funktionierte für mich: Fügen Sie dem Gradle die Kompilierung 'com.android.support:appcompat-v7:21.0.3' hinzu. Ändern Sie das SDK-Ziel auf 21. Hoffe, es funktioniert für Sie!

Claudio
quelle
1

Für mich hat es funktioniert, nachdem ich:

  • Reinigungslösung.
  • Löschen der App vom Telefon, unter dem ich sie getestet habe.
  • Visual Studio schließen.
  • Ordner / bin / und / obj / in Android-Projekten löschen.
  • Lösung erneut starten.
nvbnvb
quelle
1

Keine der oben genannten Lösungen hat bei mir funktioniert.

Ich hatte keine Symbolleiste in meinem Projekt, habe aber den gleichen Fehler erhalten.

Ich habe das Projekt aufgeräumt und die App deinstalliert. Dann habe ich einen gradlew build --refresh-dependencies ausgeführt und festgestellt, dass es einige Onclick-Ereignisse ohne entsprechenden Code in den XML-Dateien gibt.

Ich habe sie entfernt, das Projekt neu aufgebaut und es hat funktioniert.

Die Abhängigkeiten schienen nicht aktualisiert worden zu sein, aber das ist eine andere Geschichte.

Live-Liebe
quelle
1

Im Fall von Xamarin in VS müssen Sie hinzufügen

Theme = "@style/MyThemesss"

zu youractivity.cs.

Ich füge das hinzu und gehe weiter.

sa1
quelle
1

In meinem Fall wurde dieser Fehler in der Inflationsausnahme in Imageview, in den niedrigeren Versionen und im Lollipop-Betriebssystem angezeigt.

Ich habe diese Ausnahme behoben, als alle Bilddateien im zeichnbaren v-24-Ordner in den zeichnbaren Ordner verschoben wurden.

Mayuresh Deshmukh
quelle
0

Ich hatte Probleme mit der Symbolleiste in einem RelativeLayout. Versuchen Sie es mit LinearLayout. Wenn Sie die Symbolleiste überlagern möchten, versuchen Sie Folgendes:

 <RelativeLayout>

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

    <Button></Button>

 </RelativeLayout>

Ich verstehe nicht warum, aber es funktioniert bei mir.

Juanjo
quelle
0

Es ist unklar, warum dieser Fehler bei mir passiert ist, aber ich habe ihn gelöst. Ich habe das gleiche Layout verwendet, Inline oder Include. Beide verursachen NPE-Fehler. Ich denke, es ist kein Layoutproblem.

Ich hatte eine abstrakte Klasse namens BaseActivity erweitert ActionBarActivity, die die Methode initActionBar () haben. Ich überschreibe und rufe diese Methode in OnCreate der untergeordneten Klasse auf. So ähnlich:

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);
}

Ich hatte NPE-Fehler mit dem oben genannten Code. Ich weiß nicht, warum ich falsch bin. Ich löse nach unten Code und es sieht gleich aus .

@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();
}
Khai Nguyen
quelle
0

In meinem Fall bestand ein Problem beim Aufrufen von inflater.inflate (R.layout.some_layout, null). Null als ViewGroup-Parameter war das Problem.

Oknesif
quelle
0

Die Lösung für das Problem wurde für mich im XML-Dokument für meine Hauptaktivität gefunden. Ursprünglich war meine Symbolleiste <android.support.v7.widget.Toolbar. Um dies zu beheben, habe ich es in geändert <android.widget.Toolbar. Ich weiß allerdings nicht, warum das funktioniert hat. Hat jemand einen Einblick warum?

androidtitan
quelle
<android.support.v7.widget.Toolbar unterstützt die Pre-Lollipop-Geräte. Sie können diese android-developers.blogspot.in/2014/10/…
Sagar Devanga
0

Problem war für Pre-Lolipop-Geräte. Ich konnte dieses Problem lösen, indem ich Folgendes ersetzte:

Ersetzen Sie im Symbolleistenlayout alles, was so aussieht:

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

mit

android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
Rumit Patel
quelle
0

Für mich war der Fehler, dass ich hatte:

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

anstatt:

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

Insbesondere hatte ich in der ersten Zeile einen Doppelpunkt zwischen "Android" und "Support" anstelle eines Punkts.

Ellen Spertus
quelle
Ich sehe nicht ein, wie das jemandem helfen könnte.
Ichalos
@ichalos kann es als kostenlose Alternative dienen zone.msn.com/en/spotthedifference
obe