无法启动活动 ComponentInfo 二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错

Posted

技术标签:

【中文标题】无法启动活动 ComponentInfo 二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错【英文标题】:Unable to start activity ComponentInfo Binary XML file line #13: Error inflating class com.google.android.material.appbar.MaterialToolbar 【发布时间】:2021-06-05 10:22:11 【问题描述】:

我对这个似乎无法解决的错误感到非常困惑。 下面是我的代码

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.doopisoft.dspots.adapter.ListViewAdapter;
import com.doopisoft.dspots.adapter.SearchAdapter;
import com.doopisoft.dspots.model.SearchModel;
import com.doopisoft.dspots.model.User;
import com.doopisoft.dspots.ui.main.ViewPagerAdapter;
import com.doopisoft.dspots.utils.SessionManager;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
import androidx.annotation.RequiresApi;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;
import butterknife.BindView;
import static com.doopisoft.dspots.utils.SessionManager.login;

public class MainActivity extends AppCompatActivity implements SearchAdapter.ItemListener
    RecyclerView recyclerView;
    MaterialToolbar toolBar;
    AppBarLayout appBarLayout;
    ListViewAdapter listViewAdapter;
    SearchAdapter searchAdapter;
    ShowSearchView showSearchView;
    private ImageView image_search_back;
    private CardView card_search;
    private RelativeLayout view_search;
    String text = "";
    private View line_divider, toolbar_shadow;
    private EditText edit_text_search;
    List<SearchModel> modelsList, filterModels;
    List<SearchModel> cuisinesModels;
    @BindView(R.id.action_search)
    MenuItem actionSearch;
    @BindView(R.id.notification)
    MenuItem notification;
    boolean editTextChangedFromClick = false;
    ListView listView;
    SessionManager sessionManager;
    User user;
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sessionManager = new SessionManager(MainActivity.this);
        user = sessionManager.getUserDetails("");
        showSearchView = new ShowSearchView();
        toolBar = (MaterialToolbar) findViewById(R.id.toolbar2);
        view_search = (RelativeLayout) findViewById(R.id.view_search);
        card_search = (CardView) findViewById(R.id.card_search);
        line_divider = findViewById(R.id.line_divider);
        toolbar_shadow = findViewById(R.id.toolbar_shadow);
        edit_text_search = (EditText) findViewById(R.id.edit_text_search);
        image_search_back = (ImageView) findViewById(R.id.image_search_back);
        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        appBarLayout = findViewById(R.id.appBar);
        listView = (ListView) findViewById(R.id.listView);
        TextView no_results = (TextView) findViewById(R.id.txtNoResultsFound);
        listView.setEmptyView(no_results);
        image_search_back.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                text = "";
                showSearchView.handleToolBar(MainActivity.this, card_search, toolBar, view_search, recyclerView, edit_text_search, line_divider);
                toolbar_shadow.setVisibility(View.VISIBLE);
                listViewAdapter = new ListViewAdapter(modelsList);
                listView.setAdapter(listViewAdapter);
            
        );

这是布局

<androidx.coordinatorlayout.widget.CoordinatorLayout
    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_
    android:layout_
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appBar"
        android:theme="@style/Theme.MaterialComponents.DayNight.DarkActionBar"
        android:layout_
        android:layout_>
        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbar2"
            android:layout_
            android:layout_
            app:layout_scrollFlags="scroll|enterAlways"
            app:menu="@menu/menu_main"
            app:title="@string/app_name" />
        <com.google.android.material.tabs.TabLayout
            android:id="@+id/tabs"
            android:layout_
            android:layout_
            app:tabGravity="fill"
            app:tabMode="fixed"
            app:layout_scrollFlags="scroll|enterAlways"/>
        </com.google.android.material.appbar.AppBarLayout>
        <ListView
            android:id="@+id/listView"
            android:layout_
            android:layout_
            android:layout_marginBottom="@dimen/corners_small_value"
            android:layout_marginLeft="@dimen/corners_small_value"
            android:layout_marginRight="@dimen/corners_small_value"
            android:visibility="invisible">
        </ListView>
        <View
            android:id="@+id/toolbar_shadow"
            android:layout_
            android:layout_
            android:layout_below="@+id/toolbar"
            android:background="@drawable/toolbar_shadow" />
        <RelativeLayout
            android:id="@+id/view_search"
            android:layout_
            android:layout_
            android:background="#50000000"
            android:clickable="true"
            android:elevation="10dp"
            android:visibility="invisible">
            <ProgressBar
                android:id="@+id/marker_progress"
                style="?android:attr/progressBarStyle"
                android:layout_
                android:layout_
                android:layout_centerInParent="true"
                android:indeterminate="true"
                android:visibility="gone" />
        </RelativeLayout>
        <ListView
            android:id="@+id/listContainer"
            android:layout_
            android:layout_
            android:background="#fff"
            android:clipToPadding="false"
            android:divider="#fff"
            android:paddingTop="56dp"
            android:visibility="gone" />
        <androidx.cardview.widget.CardView
            android:id="@+id/card_search"
            android:layout_
            android:layout_
            android:layout_margin="4dp"
            app:layout_anchorGravity="top"
            app:cardElevation="200dp"
            app:cardCornerRadius="2dp">
            <RelativeLayout
                android:layout_
                android:layout_>
                <LinearLayout
                    android:id="@+id/linearLayout_search"
                    android:layout_
                    android:layout_>
                    <ImageView
                        android:id="@+id/image_search_back"
                        android:layout_
                        android:layout_
                        android:background="?android:attr/selectableItemBackground"
                        android:clickable="true"
                        android:padding="12dp"
                        android:src="@drawable/ic_arrow_back" />
                    <EditText
                        android:id="@+id/edit_text_search"
                        android:layout_
                        android:padding="4dp"
                        android:layout_
                        android:layout_weight="1"
                        android:background="@drawable/rounded_editetext"
                        android:focusable="true"
                        android:gravity="center_vertical"
                        android:hint="@string/search_area_data"
                        android:imeOptions="actionSearch"
                        android:inputType="textCapWords"
                        android:maxLines="1"
                        android:paddingLeft="12dp"
                        android:paddingRight="8dp" />
                </LinearLayout>
                <View
                    android:id="@+id/line_divider"
                    android:layout_
                    android:layout_
                    android:layout_below="@+id/linearLayout_search"
                    android:background="#eee" />
                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/recyclerView"
                    android:paddingTop="2dp"
                    android:layout_
                    android:layout_
                    android:layout_below="@+id/line_divider"
                    android:divider="#FFFFFF" />
            </RelativeLayout>
        </androidx.cardview.widget.CardView>
        <TextView
            android:id="@+id/txtNoResultsFound"
            android:layout_
            android:layout_
            android:layout_centerInParent="true"
            android:gravity="center"
            android:visibility="gone"
            android:padding="@dimen/activity_horizontal_margin"
            android:text="@string/no_results_found"/>
        <androidx.viewpager.widget.ViewPager
            android:id="@+id/view_pager"
            android:layout_
            android:layout_
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab"
            android:layout_
            android:layout_
            android:layout_gravity="bottom|end"
            android:background="@color/white"
            android:src="@drawable/ic_baseline_add_24"
            android:layout_margin="@dimen/fab_margin"
            android:contentDescription="@string/report_your_case"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

这就是问题所在 E/AndroidRuntime: 致命异常: main 进程:com.doopisoft.dspots,PID:8605 java.lang.RuntimeException:无法启动活动 ComponentInfo.MainActivity:android.view.InflateException:二进制 XML 文件第 13 行:二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3013) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3148) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1861) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6819) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912) 引起:android.view.InflateException:二进制 XML 文件第 13 行:二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错 原因:android.view.InflateException: Binary XML file line #13: Error inflating class com.google.android.material.appbar.MaterialToolbar 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.newInstance0(本机方法) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:343) 在 android.view.LayoutInflater.createView(LayoutInflater.java:647) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:807) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:880) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:841) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:883) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:841) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 在 androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 在 com.doopisoft.dspots.MainActivity.onCreate(MainActivity.java:65) 在 android.app.Activity.performCreate(Activity.java:7136) 在 android.app.Activity.performCreate(Activity.java:7127) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2990) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3148) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1861) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6819) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912) 原因:java.lang.UnsupportedOperationException:无法解析索引 29 处的属性:TypedValuet=0x2/d=0x7f0400c6 a=6 在 android.content.res.TypedArray.getColorStateList(TypedArray.java:546) E/AndroidRuntime:在 androidx.appcompat.widget.TintTypedArray.getColorStateList(TintTypedArray.java:184) 在 androidx.appcompat.widget.Toolbar.(Toolbar.java:341) 在 com.google.android.material.appbar.MaterialToolbar.(MaterialToolbar.java:78) 在 com.google.android.material.appbar.MaterialToolbar.(MaterialToolbar.java:74) 如果您能帮助我,我将不胜感激。我的问题可能出在哪里?提前致谢

【问题讨论】:

***.com/help/how-to-ask 由于您是社区新手,请通过此链接 【参考方案1】:

在您的布局中,材质工具栏的高度应为 wrap_content。

 <com.google.android.material.appbar.MaterialToolbar
     android:layout_
     android:layout_/>

【讨论】:

谢谢,但这不是问题所在。

以上是关于无法启动活动 ComponentInfo 二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何修复无法启动活动 ComponentInfo.....:java.lang.NullPointerException [重复]

Android 错误:无法启动活动 ComponentInfo..?

无法启动活动 ComponentInfo...add_team:java.lang.NullPointerException [重复]

安装 Android SDK Build-Tools 26 后无法启动活动 ComponentInfo...

无法启动活动 ComponentInfo java.lang.RuntimeException:无法创建 webview

Android Studio无法启动活动性ComponentInfo