简体   繁体   English

如何修复“错误夸大类android.support.design.widget.NavigationView”

[英]How to fix “Error inflating class android.support.design.widget.NavigationView”

I want to create app, where NavigationView and Bottom Navigation work with each other, but in output I got the next strings in "Run" 我想创建一个应用程序,其中NavigationView和Bottom Navigation相互配合,但是在输出中,我在“运行”中得到了下一个字符串

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mederov.timelord, PID: 24070 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mederov.timelord/com.mederov.timelord.MainActivity}: android.view.InflateException: Binary XML file line #38: Binary XML file line #38: Error inflating class android.support.design.widget.NavigationView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2785) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2863) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Ca E / AndroidRuntime:致命例外:主进程:com.mederov.timelord,PID:24070 java.lang.RuntimeException:无法启动活动ComponentInfo {com.mederov.timelord / com.mederov.timelord.MainActivity}:android.view。 InflateException:二进制XML文件第38行:二进制XML文件第38行:错误膨胀了android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2785)上的类android.support.design.widget.NavigationView。 android.app.ActivityThread。上的handleLaunchActivity(ActivityThread.java:2863).- wrap11(Unknown Source:0)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1596)android.os.Handler.dispatchMessage(Handler) .java:106),位于android.os.Looper.loop(Looper.java:164),位于android.app.ActivityThread.main(ActivityThread.java:6541),位于java.lang.reflect.Method.invoke(本机方法),位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)上的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438) used by: android.view.InflateException: Binary XML file line #38: Binary XML file line #38: Error inflating class android.support.design.widget.NavigationView Caused by: android.view.InflateException: Binary XML file line #38: Error inflating class android.support.design.widget.NavigationView Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) at android.view.LayoutInflater.createView(LayoutInflater.java:647) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.i 使用者:android.view.InflateException:二进制XML文件第38行:二进制XML文件第38行:膨胀类android.support.design.widget.NavigationView的错误原因:android.view.InflateException:二进制XML文件第38行:错误膨胀类android.support.design.widget.NavigationView的原因:java.lang.reflect.Constructor.newInstance0(本机方法)处的java.lang.reflect.InvocationTargetException于android.view.LayoutInflater.createView(LayoutInflater.java:647)处的java:334)于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)处的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)处android.view.LayoutInflater.rInflate(LayoutInflater.java:863)在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)在android.view.LayoutInflater.rInflate(LayoutInflater.java:866)在android.view.LayoutInflater .rInflateChildren(LayoutInflater.java:824)在android.view.LayoutInflater.i nflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.mederov.timelord.MainActivity.onCreate(MainActivity.java:24) at android.app.Activity.performCreate(Activity.java:7033) at android.app.Activity.performCreate(Activity.java:7024) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2738) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2863) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.ap nflate(LayoutInflater.java:515)位于android.view.LayoutInflater.inflate(LayoutInflater.java:423:位于android.view.LayoutInflater.inflate(LayoutInflater.java:374)位于android.support.v7.app.AppCompatDelegateImpl.setContentView (AppCompatDelegateImpl.java:469)在android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)在com.mederov.timelord.MainActivity.onCreate(MainActivity.java:24)在android.app.Activity。在android.app.Activity.performCreate(Activity.java:7024)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)上的performCreate(Activity.java:7033)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2738)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2863)在android.app.ActivityThread.-wrap11(未知来源:0)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1596)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:164)在android.ap p.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: java.lang.RuntimeException: Unexpected end of document at android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:215) at android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:128) at android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:264) at android.support.design.widget.NavigationView.(NavigationView.java:189) at android.support.design.widget.NavigationView.(NavigationView.java:104) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) at android.view.LayoutInflater.createView(LayoutInflater.java:647) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) at androi p.ActivityThread.main(ActivityThread.java:6541)位于com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)位于java.lang.reflect.Method.invoke(本机方法)在com。 android.internal.os.ZygoteInit.main(ZygoteInit.java:807)原因:java.lang.RuntimeException:android中的文档意外结尾。android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:215) android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:264)上的.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:128)android.support.design.widget.NavigationView。(NavigationView。 java:189)位于android.support.design.widget.NavigationView。(NavigationView.java:104)位于java.lang.reflect.Constructor.newInstance0(本机方法)位于java.lang.reflect.Constructor.newInstance(Constructor.java :334)在android.view.LayoutInflater.createView(LayoutInflater.java:647)在androi的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) d.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.mederov.timelord.MainActivity.onCreate(MainActivity.java:24) at android.app.Activity.performCreate(Activity.java:7033) at android.app.Activity.performCreate(Activity.java:7024) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) at andro d.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)在android.view.LayoutInflater.rInflate(LayoutInflater.java:863)在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)在android.view.LayoutInflater android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)的.rInflate(LayoutInflater.java:866)android.view.LayoutInflater.inflate(LayoutInflater。)的android.view.LayoutInflater.inflate(LayoutInflater.java:515)的。 java:423)位于android.view.LayoutInflater.inflate(LayoutInflater.java:374)位于android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)位于android.support.v7.app.AppCompatActivity.setContentView (appCompatActivity.java:140)位于com.mederov.timelord.MainActivity.onCreate(MainActivity.java:24)位于android.app.Activity.performCreate(Activity.java:7033)在android.app.Activity.performCreate(Activity。 java:7024),位于安德罗(android)上android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) id.app.ActivityThread.performLaunchActivity(ActivityThread.java:2738) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2863) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) id.app.ActivityThread.performLaunchActivity(ActivityThread.java:2738)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2863)在android.app.ActivityThread.-wrap11(Unknown Source:0)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1596)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:164)在android.app.ActivityThread.main(位于com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)的java.lang.reflect.Method.invoke(本机方法)的ActivityThread.java:6541) ZygoteInit.main(ZygoteInit.java:807)

.

XML XML格式

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/fragment_container"
        android:layout_above="@id/nav_bar"/>

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

            <include
                layout="@layout/toolbar_main"
                android:id="@+id/toolbar" />

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

        </LinearLayout>

        <android.support.design.widget.BottomNavigationView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:id="@+id/nav_bar"
            app:menu="@menu/bottom_navigation"
            android:background="@color/colorWhite"/>

        <android.support.design.widget.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/nav_header"
            app:menu="@menu/toolbar_menu" />

    </RelativeLayout>


</android.support.v4.widget.DrawerLayout>

Java Class Java类

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.nav_bar);
        bottomNavigationView.setOnNavigationItemSelectedListener(navListener);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,
                drawer,
                toolbar,
                R.string.nav_open_drawer,
                R.string.nav_close_drawer);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener((NavigationView.OnNavigationItemSelectedListener) this);
        Fragment fragment = new AimsFragment();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(R.id.content_frame, fragment);
        ft.commit();;
    }
 private BottomNavigationView.OnNavigationItemSelectedListener navListener =
         new BottomNavigationView.OnNavigationItemSelectedListener() {
             @Override
             public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                 Fragment selectedFragment = null;
                 switch (item.getItemId()){
                     case R.id.nav_veri:
                         selectedFragment = new AimsFragment();
                         break;
                     case R.id.nav_diary:
                         selectedFragment = new DiaryFragment();
                         break;
                     case R.id.nav_appoint:
                         selectedFragment = new CalendarFragment();
                         break;
             }

             getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,selectedFragment).commit();
        return true;
         }

};

    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        Fragment fragment = null;
        Intent intent = null;
        switch(id){
            case R.id.nav_aims:
                fragment = new AimsFragment();
                break;
            case R.id.nav_reminder:
                fragment = new ReminderFragment();
                break;
            case R.id.nav_statics:
                fragment = new StaticsFragment();
                break;
            case R.id.nav_schedule:
                fragment = new ScheduleFragment();
                break;
            case R.id.nav_project:
                fragment = new ProjectFragment();
                break;
            case R.id.nav_settings:
                fragment = new SettingsFragment();
                break;
            case R.id.nav_info:
                fragment = new InfoFragment();
                break;
            default:
                fragment = new AimsFragment();
        }
        if (fragment != null) {
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.content_frame, fragment);
            ft.commit();
        } else {
            startActivity(intent);
        }
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    }

Gradle 摇篮

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.mederov.timelord"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        }
    }
    buildToolsVersion '28.0.3'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:28.0.0'
    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 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
}

Menu 菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_aims"
            android:icon="@drawable/idea_aims"
            android:title="@string/nav_aims"
            android:checked="true" />
        <item
            android:id="@+id/nav_reminder"
            android:icon="@drawable/reminder"
            android:title="@string/nav_reminder" />
        <item
            android:id="@+id/nav_statics"
            android:icon="@drawable/statics"
            android:title="@string/nav_statics" />
        <item
            android:id="@+id/nav_schedule"
            android:icon="@drawable/scheldule"
            android:title="@string/nav_schedule" />
        <item
            android:id="@+id/nav_project"
            android:icon="@drawable/project"
            android:title="@string/nav_project" />
    </group>

        <menu>
            <item
                android:id="@+id/nav_settings"
                android:icon="@drawable/settings"
                android:title="@string/nav_settings" />
            <item
                android:id="@+id/nav_info"
                android:icon="@drawable/info"
                android:title="@string/nav_info"/>

        </menu>

</menu>

Help me please I can't realize how fix this error) 请帮助我,我不知道如何解决此错误)

I was have same error and i fixed it. 我有同样的错误,我已经解决了。 The problem is in vector icon the vector just work on api level 21+ if you try run it on api 19- he's will doesn't work with you. 问题出在矢量图标中,如果您尝试在api 19上运行,则该矢量只能在api级别21+上运行-他将无法与您一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何修复错误充气 class android.support.design.widget.NavigationView - how fix Error inflating class android.support.design.widget.NavigationView 获取错误膨胀类android.support.design.widget.NavigationView - Getting Error inflating class android.support.design.widget.NavigationView 错误膨胀类 android.support.design.widget.NavigationView - Error inflating class android.support.design.widget.NavigationView 错误膨胀类android.support.design.widget.NavigationView [启动时崩溃] - Error Inflating class android.support.design.widget.NavigationView [Crash on Startup] 二进制 XML 文件第 30 行:错误膨胀类 android.support.design.widget.NavigationView - Binary XML file line #30: Error inflating class android.support.design.widget.NavigationView 在我的应用中膨胀类android.support.design.widget.NavigationView时出错 - Error inflating class android.support.design.widget.NavigationView in my app 在android.support.design.widget.NavigationView类中出现错误 - Getting Error in class android.support.design.widget.NavigationView 无法导入android.support.design.widget.NavigationView - Unable to import android.support.design.widget.NavigationView 'android.support.design.widget.NavigationView' 的 AIDE 未知类型'onNavigationItemSelectedListener' - AIDE Unknown type 'onNavigationItemSelectedListener' of 'android.support.design.widget.NavigationView' 更新到 androidx 后:“膨胀 class android.support.design.widget.NavigationView 时出错。” 为什么应用程序崩溃? - After Updating to androidx : 'Error inflating class android.support.design.widget.NavigationView.' Why is the app crashing?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM