错误膨胀 class com.google.android.material.appbar.AppBarLayout
Error inflating class com.google.android.material.appbar.AppBarLayout
我有波纹管xml
:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarMainActivity"
style="@style/CustomToolbar"
android:background="@color/biscay"
app:layout_scrollFlags="scroll|enterAlways">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/icon_drawer_imagebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:paddingLeft="10dp"
android:paddingRight="10dp"
app:srcCompat="@drawable/ic_drawer" />
<RelativeLayout
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/icon_drawer_imagebutton">
<ImageButton
android:id="@+id/icon_logo_imagebutton"
android:layout_width="@dimen/size_logo"
android:layout_height="@dimen/size_logo"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:background="@null"
android:scaleType="fitXY"
app:srcCompat="@drawable/ic_logo_white" />
<TextView
android:id="@+id/nameUniversity_textview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textSize="18sp"
android:layout_toLeftOf="@+id/icon_logo_imagebutton"
android:gravity="center_vertical"
android:text="@string/nameUniversity"
android:textColor="@color/colorTextLight"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabsMainActivity"
style="@style/CustomTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/appBarLayout"
app:tabGravity="fill"
app:tabMode="fixed" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpagerMainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tabsMainActivity"
android:background="@color/colorTextLight" />
</RelativeLayout>
<!-- Navigation Drawer-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/drawerRecyclerView"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@color/gallery" />
</androidx.drawerlayout.widget.DrawerLayout>
我的图书馆是:
implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha2'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:multidex:1.0.3'
但是让我报错:
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class com.google.android.material.appbar.AppBarLayout
Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.google.android.material.appbar.AppBarLayout
Caused by: java.lang.reflect.InvocationTargetException
您正在使用 AndroidX
标签组件,您已经拥有 AppCompat
依赖项。这也会导致其他问题。使用 Refactor -> Migrate to AndoridX
并为 material 组件添加上述依赖项。
在您的 build.gradle
依赖项中:
implementation 'com.google.android.material:material:1.0.0'
它来自 Material 组件 -> com.google.android.material
如您所见,这就是您收到错误的原因。
记得更新另一个build.gradle
中的gradle
:
classpath 'com.android.tools.build:gradle:3.2.0'
implementation 'com.google.android.material:material:1.0.0'
classpath 'com.android.tools.build:gradle:3.2.0'
如果您添加了上述两个条件,但仍然显示错误,您可以尝试 "LinearLayout"。
不要忘记在 style.xml
中使用 Theme.MaterialComponents.Light.NoActionBar
(或任何 Theme.MaterialComponents.*.NoActionBar
)作为你的 parent AppTheme
(source ).
检查您的 /res/values/styles.xml 并将您的主题设置为
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
或类似
我有波纹管xml
:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarMainActivity"
style="@style/CustomToolbar"
android:background="@color/biscay"
app:layout_scrollFlags="scroll|enterAlways">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/icon_drawer_imagebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:paddingLeft="10dp"
android:paddingRight="10dp"
app:srcCompat="@drawable/ic_drawer" />
<RelativeLayout
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/icon_drawer_imagebutton">
<ImageButton
android:id="@+id/icon_logo_imagebutton"
android:layout_width="@dimen/size_logo"
android:layout_height="@dimen/size_logo"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:background="@null"
android:scaleType="fitXY"
app:srcCompat="@drawable/ic_logo_white" />
<TextView
android:id="@+id/nameUniversity_textview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textSize="18sp"
android:layout_toLeftOf="@+id/icon_logo_imagebutton"
android:gravity="center_vertical"
android:text="@string/nameUniversity"
android:textColor="@color/colorTextLight"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabsMainActivity"
style="@style/CustomTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/appBarLayout"
app:tabGravity="fill"
app:tabMode="fixed" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpagerMainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tabsMainActivity"
android:background="@color/colorTextLight" />
</RelativeLayout>
<!-- Navigation Drawer-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/drawerRecyclerView"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@color/gallery" />
</androidx.drawerlayout.widget.DrawerLayout>
我的图书馆是:
implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha2'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:multidex:1.0.3'
但是让我报错:
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class com.google.android.material.appbar.AppBarLayout
Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.google.android.material.appbar.AppBarLayout
Caused by: java.lang.reflect.InvocationTargetException
您正在使用 AndroidX
标签组件,您已经拥有 AppCompat
依赖项。这也会导致其他问题。使用 Refactor -> Migrate to AndoridX
并为 material 组件添加上述依赖项。
在您的 build.gradle
依赖项中:
implementation 'com.google.android.material:material:1.0.0'
它来自 Material 组件 -> com.google.android.material
如您所见,这就是您收到错误的原因。
记得更新另一个build.gradle
中的gradle
:
classpath 'com.android.tools.build:gradle:3.2.0'
implementation 'com.google.android.material:material:1.0.0'
classpath 'com.android.tools.build:gradle:3.2.0'
如果您添加了上述两个条件,但仍然显示错误,您可以尝试 "LinearLayout"。
不要忘记在 style.xml
中使用 Theme.MaterialComponents.Light.NoActionBar
(或任何 Theme.MaterialComponents.*.NoActionBar
)作为你的 parent AppTheme
(source ).
检查您的 /res/values/styles.xml 并将您的主题设置为
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
或类似