使用任何 Android 设计支持库元素时出错

Error when using any Android Design Support Library Elements

从设计支持库中膨胀任何东西时出错

xml

<android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

build.gradle

dependencies {
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:support-v13:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'

项目build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

错误:

Binary XML file line #115: Error inflating class
android.support.design.widget.FloatingActionButton

我的 Sdk Manager 一切都是最新的。

在 Extras 中更新 SDK 管理器上的支持库 > Android 支持存储库和 Android 支持库,对我有用 ;)

并且不要忘记在 app.gradle 和同步

上添加编译 'com.android.support:design:22.2.0'

除了 Emmanuel 的回答之外,您可能还面临以下问题。

设计库组件似乎需要一种基于 AppCompat 主题的样式。因此,请尝试在 style.xml.

中使用 "Theme.AppCompat.[...]" 作为父项

示例:

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.AppTheme">
    <!-- Customize your theme here. -->
</style>

<style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <item name="android:colorAccent">@color/accent</item>
</style>

然后将以下内容也添加到您的 build.gradle 中:

compile 'com.android.support:appcompat-v7:22.2.0'

此外,您还应该更新 gradle 中的以下行:

classpath 'com.android.tools.build:gradle:1.2.3'
compileSdkVersion 22
buildToolsVersion '22.0.1'
targetSdkVersion 22

在我的例子中,使用 android.support.design.widget.NavigationView 时发生的相同崩溃已通过向布局添加 app:itemTextColor 属性得到解决 xml:

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header"
        app:itemTextColor="?android:textColorPrimary"
        app:menu="@menu/drawer"/>

需要仔细检查的一件事是您是否已在 AndroidManifest.xml 文件中正确应用主题。在我的例子中,我省略了 android:theme 属性。例如:

<application ... android:theme="@style/Your.Theme.Here" ... >

请注意,即使您使用的是设计支持库中的 FloatingActionButton 小部件,如果您想让 FAB 正常工作,您仍然必须使用 srcCompat 来引用您的图标在旧设备上。

<android.support.design.widget.FloatingActionButton
    app:srcCompat="@drawable/ic_keyboard_arrow_right_black_24dp"
    ... />