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

33

设计支持库中的任何内容都无法膨胀导致错误。

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管理器已经更新到最新版本。
SDK管理器


渲染错误或日志中有错误。 - Maher Ismaail
在尝试渲染时,logcat 中出现了错误。 - Joshua McWilliams
这是在最新版本的Android Studio中出现的问题...应该很快就会修复。 - Maher Ismaail
@MaherIsmaail 我有一个样例项目,使用与这个项目相同的配置运行设计支持库没有问题。你确定这是一个Studio的问题吗? - Joshua McWilliams
你尝试使用API 21编译应用程序了吗? - Maher Ismaail
5个回答

27

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

2
这个方法可行。我需要更改我的AppTheme的父级。谢谢! - Joshua McWilliams
2
那对我也起作用,但是我的“工具栏”消失了。有没有办法保持“Theme.Material”并拥有“NavigationView”? - wzieba
1
确保类继承自AppCompatActivity而不是Activity。`import android.support.v7.app.AppCompatActivity;public class MyActivity extends AppCompatActivity { [...]` - CptSausage
谢谢,这也帮助了我。 - user4702646
1
对我来说,只需将FAB的主题更改为'app:theme="@style/Base.Theme.AppCompat.Light'即可解决问题。 - Machine Tribe

11

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

不要忘记在app.gradle中添加compile 'com.android.support:design:22.2.0'并进行同步


5
在我的情况下,使用 android.support.design.widget.NavigationView 时发生的崩溃问题通过在布局的xml文件中添加 app:itemTextColor 属性得到了解决:
    <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"/>

3

请注意,即使您使用的是Design Support库中的FloatingActionButton小部件,如果您希望FAB在旧设备上正常工作,仍然需要使用srcCompat来引用您的图标。

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

0
一个需要仔细检查的事情是确保你在AndroidManifest.xml文件中正确地应用了你的主题。在我的情况下,我忘记添加android:theme属性了。例如:
<application ... android:theme="@style/Your.Theme.Here" ... >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接