使用任何 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"
... />
从设计支持库中膨胀任何东西时出错
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"
... />