Android XML: RuntimeException: Attribut bei Index 6 konnte nicht aufgelöst werden

Lesezeit: 3 Minuten

Benutzer-Avatar
Paul Reznik

Hallo liebe Stackoverflower,

In meinem Projekt verwende ich die neue “Android Design Library”. Das Problem ist, dass es eine Laufzeitausnahme gibt, die besagt (Ich versuche, einen FloatingButton zu erstellen):

 java.lang.RuntimeException: Failed to resolve attribute at index 6
        at android.content.res.TypedArray.getColorStateList(TypedArray.java:426)
        at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:91)
        at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:79)
        at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:75)

Ich konnte herausfinden, welches Attribut nicht aufgelöst werden kann:

<style name="Widget.Design.FloatingActionButton" parent="android:Widget">
    <item name="android:background">@drawable/fab_background</item>
    <item name="backgroundTint">?attr/colorAccent</item>  **!! this one is missing !!**
    <item name="fabSize">normal</item>
    <item name="elevation">@dimen/fab_elevation</item>
    <item name="pressedTranslationZ">@dimen/fab_translation_z_pressed</item>
    <item name="rippleColor">?attr/colorControlHighlight</item>
    <item name="borderWidth">@dimen/fab_border_width</item>
</style>

Diese befindet sich in res/values/styles/styles.xml in der android-design-library

Ich habe in diesem Beitrag gelesen, dass das API-Level 21+ sein sollte. Da die Designbibliothek jedoch API 7+ unterstützt, sollte dies eigentlich kein Problem darstellen.

Es ist auch erwähnenswert, dass ich die Designbibliothek nicht als Gradle-Abhängigkeit wie folgt aufgenommen habe:

 compile 'com.android.support:design:22.2.0'

Ich füge die Bibliothek manuell zum Projekt hinzu, da der Jenkins-Server keinen Internetzugang hat. Ich habe die support-v4-Bibliothek auf 21.2.0 aktualisiert, auch die appcompat support-v7 ist enthalten und aktualisiert.

Hier ist die Gradle-Datei der Android-Design-Bibliothek:

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    minSdkVersion 17
    targetSdkVersion 21
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

Es wäre toll, wenn mir jemand helfen könnte.

Benutzer-Avatar
Orium

Hatte das gleiche Problem, weil verwendet getApplicationContext() anstatt Activity abzurufen LayoutInflater und Elementansicht für Listenadapter aufblasen.

  • Das ist die Antwort.

    – Yusuf Çağlar

    27. April 2018 um 1:04 Uhr

  • Kann jemand erklären warum?

    – Terranologie

    13. April 2019 um 11:03 Uhr

  • Dies war auch die Antwort für mich. Zur Verdeutlichung habe ich geändert PopupMenu fileMenu = new PopupMenu(getApplicationContext(), fileButton) zu PopupMenu fileMenu = new PopupMenu(MainActivity.this, fileButton) und alles funktionierte.

    – Quilkin

    3. Dezember 2020 um 14:25 Uhr

  • Das ?... ist mein Problem

    – FindOutIslamNow

    13. August 2019 um 19:38 Uhr

Benutzer-Avatar
Tincho825

In meinem Fall hatte ich einen Fehler bei setContentView(R.layout.my_layout). In my_layoutich benutzte app:errorEnabled="true" in einem TextInputLayout was den Fehler verursacht hat. Diese Zeile entfernt, und es funktionierte.

Benutzer-Avatar
Kevin Grant

Bin selbst auf dieses Problem gestoßen. Das liegt daran, dass meine App AppCompat noch nicht verwendet, sondern nur den regulären Support FragmentActivity. Dies bedeutet, dass FloatingActionButton suchte nach zwei Themenattributen und konnte sie nicht finden.

Durch das gezielte Hinzufügen dieser fehlenden Attribute funktionierte es für mich, ohne AppCompat verwenden zu müssen.

<LinearLayout
    ...
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    .../>

    <android.support.design.widget.FloatingActionButton
        ...
        app:backgroundTint="@color/{some color statelist}"
        app:rippleColor="@color/{some color statelist}"
        ... />

</LinearLayout>

Benutzer-Avatar
dupengtao

Achten Sie auf Ihr Thema.

Mein Thema :

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">#2196F3</item>
    <item name="colorPrimaryDark">#1565C0</item>
    <item name="colorAccent">#E91E63</item>
</style>

  • Dies hat das Problem in meinem Fall tatsächlich gelöst. Ich hatte eine benutzerdefinierte TextView erstellt und verwendete diese benutzerdefinierte Ansicht in einem Layout. Hat gut funktioniert, bis ich das Anwendungsdesign im App-Manifest geändert habe und dieser Fehler angezeigt wurde. Das Zurücksetzen auf Theme.AppCompat.Light löste das Problem. Ich nehme an, dass das alternative Design, das ich ausgewählt hatte, einige der Designelemente, die ich in meinen Stilen verwendet habe, nicht hatte.

    – Zoccadoum

    30. August 2016 um 22:38 Uhr

1010740cookie-checkAndroid XML: RuntimeException: Attribut bei Index 6 konnte nicht aufgelöst werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy