Android XML:RuntimeException:无法parsing索引6处的属性

你好亲爱的堆栈花,

在我的项目中,我正在使用新的“androiddevise库”。 问题是,有一个运行时exception说(我试图创build一个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) 

我能弄清楚,哪个属性无法解决:

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

它位于android-design-library的res / values / styles / styles.xml

我已经在这篇文章中读到API API应该是21+。 但是,作为devise库支持API 7+,这实际上不应该是一个问题。

还有一点值得一提的是,我没有把devise库当作gradle-dependency包含进去:

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

我将库添加到项目中,因为Jenkins服务器没有Internet访问权限。 我已经更新了support-v4库到21.2.0也包括和更新了appcompat support-v7。

这里是android-design-library gradle文件:

 android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { minSdkVersion 17 targetSdkVersion 21 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } 

如果有人能帮助我,那将是非常棒的。

Solutions Collecting From Web of "Android XML:RuntimeException:无法parsing索引6处的属性"

自己跑进这个问题。 这是因为我的应用程序还没有使用AppCompat,仍然只是常规的支持FragmentActivity 。 这意味着FloatingActionButton正在寻找两个主题属性,并且找不到它们。

具体而言,添加这些缺less的属性使它适用于我,而不需要开始使用AppCompat。

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

您可以通过使用Theme.AppCompat.Light作为您的活动的父主题来解决此问题。

确保你的主题。

我的主题:

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

这是因为有不止一个style.xml文件。

在您的应用程序build.gradle文件中添加以下行:

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

有相同的问题,因为使用getApplicationContext()而不是活动来检索layoutinflater和充气列表适配器的项目视图。

在我的情况下,我在setContentView(R.layout.my_layout)有一个错误。 在my_layout ,我在导致错误的TextInputLayout使用了app:errorEnabled="true" 。 删除了这一行,它工作。