在 Android Studio 中膨胀 class android.support.v7.widget.Toolbar 时出错 - Java

Error inflating class android.support.v7.widget.Toolbar in Android Studio - Java

我正在我的应用程序中实施 material 设计。 每当我尝试扩充布局时,应用程序就会崩溃。 我在另一个测试项目中有完全相同的代码,并且工作得很好。

它应该通过 Firebase 检查是否有登录的用户,如果是的话直接进入主菜单。在任何一种情况下,如果用户尝试登录,它都会崩溃。

我看过很多类似的问题,但都是两年前的问题,图书馆也发生了很大变化,没有一个答案适合我的问题。

Logcat

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.hirsch.gonzalo.ustudy, PID: 23340
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hirsch.gonzalo.ustudy/com.hirsch.gonzalo.ustudy.MainActivity}: android.view.InflateException: Binary XML file line #34: Binary XML file line #34: Error inflating class android.support.v7.widget.Toolbar
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5443)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
 Caused by: android.view.InflateException: Binary XML file line #34: Binary XML file line #34: Error inflating class android.support.v7.widget.Toolbar
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.hirsch.gonzalo.ustudy.Fragments.MainMenuFragment.onCreateView(MainMenuFragment.java:57)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
    at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3235)
    at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:212)
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:628)
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1260)
    at android.app.Activity.performStart(Activity.java:6261)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5443) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
 Caused by: android.view.InflateException: Binary XML file line #34: Error inflating class android.support.v7.widget.Toolbar
    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at com.hirsch.gonzalo.ustudy.Fragments.MainMenuFragment.onCreateView(MainMenuFragment.java:57) 
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802) 
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625) 
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411) 
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3235) 
    at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:212) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:628) 
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1260) 
    at android.app.Activity.performStart(Activity.java:6261) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5443) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at android.view.LayoutInflater.createView(LayoutInflater.java:619)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at com.hirsch.gonzalo.ustudy.Fragments.MainMenuFragment.onCreateView(MainMenuFragment.java:57) 
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802) 
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625) 
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411) 
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3235) 
    at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:212) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:628) 
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1260) 
    at android.app.Activity.performStart(Activity.java:6261) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5443) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
 Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f080081
    at android.content.res.Resources.getValue(Resources.java:1351)
    at android.support.v7.widget.AppCo

MainMenuFragment.java

    /.../
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.main_menu_fragment, container, false);

    /.../
}

main_menu_fragment.xml

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:clipChildren="false"
    tools:context=".Fragments.MainMenuFragment">

    <LinearLayout
        style="@style/Widget.Gonzalo.Backdrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingTop="100dp"
        android:paddingBottom="100dp">


        <include layout="@layout/backdrop"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:elevation="0dp">

            <android.support.v7.widget.Toolbar
                android:id="@+id/app_bar"
                style="@style/Widget.Gonzalo.Toolbar"
                android:layout_width="match_parent"
                android:layout_height="@dimen/toolbar_height"
                android:paddingStart="12dp"
                android:paddingLeft="12dp"
                android:paddingEnd="12dp"
                android:paddingRight="12dp"
                app:contentInsetStart="0dp"
                app:navigationIcon="@drawable/menu"
                app:title="@string/app_name" />

        </android.support.design.widget.AppBarLayout>

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/product_grid"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="8dp"
            android:background="@color/productGridBackgroundColor"
            android:paddingStart="@dimen/product_grid_spacing"
            android:paddingEnd="@dimen/product_grid_spacing"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

        </android.support.v4.widget.NestedScrollView>
    </LinearLayout>
</FrameLayout>

Style

<style name="Widget.Gonzalo.Toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/colorPrimaryDark</item>
    <item name="android:theme">@style/AppTheme</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="titleTextAppearance">@style/TextAppearance.Gonzalo.Toolbar</item>
</style>

<style name="TextAppearance.Gonzalo.Toolbar" parent="TextAppearance.MaterialComponents.Button">
    <item name="android:textSize">16sp</item>
</style>

App build.gradle

 apply plugin: 'com.android.application'
android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.hirsch.gonzalo.ustudy"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    api 'com.android.support:design:28.0.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.google.firebase:firebase-core:16.0.7'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.firebase:firebase-auth:16.1.0'
    implementation 'com.google.firebase:firebase-firestore:18.1.0'
    implementation 'com.android.volley:volley:1.1.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'org.jetbrains:annotations-java5:15.0'
}

apply plugin: 'com.google.gms.google-services'

多亏了这个post我解决了它。

Error inflating class android.support.v7.widget.Toolbar?

问题是当我导入我正在使用的所有可绘制文件时,我不知道为什么 fu** Android Studio 决定在没有警告我的情况下将它们导入 v-24 文件夹.

我将它们移至非 v-24 版本并且它有效。