Android XML: RuntimeException: impossible de résoudre l'attribut à l'indice 6
Bonjour chers stackoverflower,
Dans mon projet, je suis à l'aide de la nouvelle "android bibliothèque de conception".
Le problème, c'est qu'il y a une exception d'exécution qui dit(Im essayant de créer un FloatingButton):
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)
J'ai été en mesure de comprendre, qui l'attribut ne peut pas être résolu :
<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>
Il est situé dans res/values/styles/styles.xml dans l'android-de la conception de la bibliothèque
j'ai lu dans cette post que l'API lvl devrait bis 21+. Mais comme la conception de la bibliothèque prend en charge les API 7+, cela ne devrait pas être un problème en fait.
Il est également intéressant de mentionner que je n'ai pas inclus la conception de la bibliothèque comme un gradle-dépendance comme ceci:
compile 'com.android.support:design:22.2.0'
Je suis l'ajout de la bibliothèque manuellement pour le projet parce que le serveur Jenkins a pas accès à Internet.
J'ai mis à jour le soutien-v4 bibliothèque de 21.2.0
aussi la appcompat soutien-v7 est inclus et mis à jour.
Ici est le android-de la conception de la bibliothèque de gradle fichier:
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 17
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
Ce serait génial si quelqu'un peut m'aider.
Vous devez vous connecter pour publier un commentaire.
Rencontré ce problème moi-même. C'est parce que mon application n'est pas en utilisant AppCompat encore, toujours l'appui régulier
FragmentActivity
. Cela signifie queFloatingActionButton
était à la recherche de deux thème attributs et il ne pouvait pas les trouver.Spécifiquement l'ajout de ces attributs manquants fait le travail pour moi, sans la nécessité de commencer à utiliser AppCompat.
colorAccent
attribut, parce que je ne suis pas en utilisant AppCompat. La solution que j'ai posté devraient travailler pour les développeurs qui ont une configuration similaire comme je l'ai décrit.Eu le même problème à cause ont utilisé
getApplicationContext()
au lieu deActivity
pour récupérerLayoutInflater
et gonflez-le point de vue de liste de l'adaptateur.Vous pouvez résoudre ce problème en utilisant
Theme.AppCompat.Light
que votre activité du thème parent.ajouter:
La raison en est que l'un des style par défaut à l'aide intérieure en FloatingActionButton est déclarer comme ceci:
le backgroundTint est se référer à un autre attribut colorAccent qui devrait être en mesure déclarées dans notre thème, au contraire, à l'exception peut-être jeter.
Mais
colorAccent
est déclaré dans AppCompat Thème et n'a pas déclaré dans le sdk Thème par défaut.À mesure que nous pouvons à l'aide de la conception de la lib correctement en cours d'exécution, l'un des plus simple est de mesurer l'utilisation de AppCompat Thème commeTheme.AppCompat.Light
.Assurez-vous que votre thème .
Mon thème :
C'est parce que de plus d'un style.xml les fichiers.
Ajouter la ligne ci-dessous dans votre application construire.gradle fichier:
Dans mon cas, j'ai eu une erreur à la
setContentView(R.layout.my_layout)
.Dans
my_layout
, j'ai été en utilisantapp:errorEnabled="true"
dans unTextInputLayout
qui a provoqué l'erreur. Supprimé cette ligne, et cela a fonctionné.J'ai été en utilisant un attribut personnalisé dans attrs.xml et un customview. J'ai rencontré ce problème que je n'ai pas préciser
theme:
attribut dans la vue personnalisée. Quick look de l'apparence des fichiersattrs.xml
customview.xml
Dans mon styles.xml, j'ai étendu mon style de AppTheme
Le coupable ici était l'attribut personnalisé ?textColorPrimary. Comme je n'ai pas de définir AppTheme dans le customview, il n'était pas en mesure de déterminer comment charger textColorPrimary. Par android:thème="@style/AppTheme", c'est fixe))