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.