首页 > 解决方案 > 膨胀类 android.support.v7.widget_Toolbar 时出错

问题描述

我很难弄清楚导致我的代码崩溃的原因。到目前为止,我已经搜索了两天,阅读了所有相关的帖子,并尝试了所有似乎合适的建议解决方案,所以作为最后的手段,我问自己:

我的应用程序在启动时崩溃,运行选项卡输出以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: es.tretornesp.clickerchat, PID: 20701
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{es.tretornesp.clickerchat/es.tretornesp.clickerchat.GroupList}: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class android.support.v7.widget_Toolbar
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
                      at android.app.ActivityThread.-wrap12(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6121)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
                   Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class android.support.v7.widget_Toolbar
                   Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.v7.widget_Toolbar
                   Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget_Toolbar" on path: DexPathList[[zip file "/data/app/es.tretornesp.clickerchat-2/base.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_dependencies_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_0_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_1_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_2_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_3_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_4_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_5_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_6_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_7_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_8_apk.apk", zip file "/data/app/es.tretornesp.clickerchat-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/es.tretornesp.clickerchat-2/lib/arm, /system/lib, /vendor/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                      at android.view.LayoutInflater.createView(LayoutInflater.java:609)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                      at es.tretornesp.clickerchat.GroupList.onCreate(GroupList.java:29)
                      at android.app.Activity.performCreate(Activity.java:6723)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
                      at android.app.ActivityThread.-wrap12(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6121)
E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

我正在使用 Android Studio 3.1.4

以下是所有相关文件:

package es.tretornesp.clickerchat;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RelativeLayout;

import com.miguelcatalan.materialsearchview.MaterialSearchView;

import java.util.ArrayList;

public class GroupList extends AppCompatActivity {

    private MaterialSearchView searchView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.group_list);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("Lista de grupos");
        toolbar.setTitleTextColor(Color.parseColor("#FFFFFF"));

        searchView = (MaterialSearchView) findViewById(R.id.search_view);    
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.group_menu_item, menu);
        MenuItem item = menu.findItem(R.id.action_search);
        searchView.setMenuItem(item);
        return true;
    }
}

这是 group_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/group_list"
    android:theme="@style/AppTheme.NoActionBar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context="es.tretornesp.clickerchat.GroupList">

    <android.support.v7.widget_Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        />

    <com.miguelcatalan.materialsearchview.MaterialSearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />


    <ListView
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/toolbar"
        android:divider="#806326"
        android:id="@+id/listView"
        android:dividerHeight="1dp"/>

</RelativeLayout>

这是 group_menu_item.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    >

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/image_search_action"
        android:orderInCategory="100"
        android:title="Buscar..."
        app:showAsAction="always"
        />

</menu>

而这里的styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>

</resources>

希望有人可以对这里可能发生的事情有所了解。

编辑:这里是 gradle 文件,这些是我按原样发布的。

build.gradle (Module: app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "es.tretornesp.clickerchat"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
    implementation 'com.android.support.constraint:constraint-layout:1.1.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'

    //Add library
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.firebaseui:firebase-ui:4.1.0'
    implementation 'com.google.firebase:firebase-core:16.0.1'

    //Add search bar
    implementation 'com.miguelcatalan:materialsearchview:1.4.0'
}

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

build.gradle(项目:ClickerChat2)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'com.google.gms:google-services:4.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="es.tretornesp.clickerchat">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".Chat"></activity>
        <activity android:name=".GroupList" android:exported="true"></activity>
    </application>

</manifest>

标签: javaandroid-studiogradle

解决方案


推荐阅读