当前位置: 首页 > 知识库问答 >
问题:

未找到类Android支持设计小部件NavigationView

孟栋
2023-03-14

你好,你能帮帮我吗。我在模拟器上编译/运行代码时遇到了这个错误。这是我以前制作的示例教程。我使用了min Target API-15并编译了最新版本'com.android.support:design:23.0.0'

AndroidRuntime:java.lang.RuntimeException:无法启动activity ComponentInfo{com.eccp.projects.ecosavers.ecosavers.ecosavers.activities.MainActivity}:Android.View.InflateException:二进制XML文件行#29:二进制XML文件行#29:inflating类Android.Support.Design.Widget.NavigationView 12-29 06:43:39.409 344 8-3448/com.eccp.projects.ecosavers.Ecosavers时出错

E/AndroidRuntime:原因:Android.View.InflateException:二进制XML文件第29行:二进制XML文件第29行:inflating类Android.Support.Design.Widget.NavigationView时出错

下面是我的代码:mainactivity.java

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

    //SET my own toolbar
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

    mNavigationView = (NavigationView) findViewById(R.id.navigation_view);

    mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            if (menuItem.isChecked()) menuItem.setChecked(false);
            else menuItem.setChecked(true);

            //Closing drawer on item click
            mDrawerlayout.closeDrawers();

            //Check to see which item was being clicked and perform appropriate action
            switch (menuItem.getItemId()) {


                //Replacing the main content with ContentFragment Which is our Inbox View;
                case R.id.events:
                    Toast.makeText(getApplicationContext(), "Inbox Selected", Toast.LENGTH_SHORT).show();
                    Eco_events fragment = new Eco_events();
                    android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.frame, fragment);
                    fragmentTransaction.commit();
                    return true;

                //  show a toast on click

                case R.id.activities:
                    Toast.makeText(getApplicationContext(), "Send Selected", Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.spam:
                    Toast.makeText(getApplicationContext(), "Spam Selected", Toast.LENGTH_SHORT).show();
                    return true;
                default:
                    Toast.makeText(getApplicationContext(), "Somethings Wrong", Toast.LENGTH_SHORT).show();
                    return true;

            }
        }
    });

    // Initializing Drawer Layout and ActionBarToggle
    mDrawerlayout = (DrawerLayout) findViewById(R.id.drawer);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerlayout, toolbar, R.string.drawerOpened, R.string.drawerOpened) {

        @Override
        public void onDrawerClosed(View drawerView) {
            // Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
            super.onDrawerClosed(drawerView);
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            // Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
            super.onDrawerOpened(drawerView);
        }
    };

    //Setting the actionbarToggle to drawer layout
    mDrawerlayout.setDrawerListener(mDrawerToggle);

    //calling sync state is
    mDrawerToggle.syncState();


}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    return super.onOptionsItemSelected(item);
}

XML:activity_main.xml

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">

<LinearLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    >
    <include
        android:id="@+id/tool_bar"
        layout="@layout/toolbar"
        />
    <FrameLayout
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </FrameLayout>
</LinearLayout>
<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:layout_gravity="start"
    app:headerLayout="@layout/header"
    app:menu="@menu/drawer"
    /> </android.support.v4.widget.DrawerLayout>

共有1个答案

汪阿苏
2023-03-14

请执行以下步骤:

  1. 右键单击项目->打开模块设置
  2. 然后打开“依赖项”选项卡。
  3. 单击“+符号”,然后选择“库依赖关系”。您将弹出一个名为“选择库依赖关系”的弹出窗口。
  4. 在此输入“com.android.support”。然后单击“搜索”图标。
 类似资料:
  • 我正在MotoG(Lollipop5.1)上测试我的项目,还有一个XperiaT2(KitKat 4.4)上没有的问题。错误日志为: 我正在使用android。支持:设计库,但不实例化NavigationView,我尝试使用 和 并且没有解决。也许问题与之前的支持问题有关:appcompat库,当我尝试使用23.1.1较低版本时发生此错误 我的实际Gradle配置是: 请帮忙。 更新 当我尝试使用

  • 我的Laravel应用程序使用WAMP服务器在我的PC上本地成功运行 当我在RedHat服务器上部署应用程序时, 我在发出HTTP请求时遇到以下错误: 唯一的区别是 创作者json 请注意,在本地,我从一开始就将我的laravel版本从laravel 5升级到laravel 7。 我必须在服务器上安装其他任何东西才能发出HTTP请求吗?

  • 我试图实现一个与Cheesesquare演示应用程序中类似的CollapsingToolBarLayout。 但是,我需要在进入活动时默认折叠工具栏(这样在手机上的横向模式下就不会占用太多空间)。 根据文档,使用标志似乎很容易实现。 但是,我没有获得所需的行为。相反,AppBarLayout一开始显示完全扩展,然后滚动出屏幕,只留下系统栏。 下面是我的布局(对芝士蛋糕的轻微修改):

  • 升级laravel 6时出错 未找到Symfony\Component\Debug\Exception\FatalThrowableError(E\U错误)类“Illumbite\Support\Facades\Input” 源代码: 错误: 你能帮我修改代码吗?

  • 我得到这个错误,最初在运行项目在消息梯度同步。 错误:(1,0)未找到id为'com.android.application'的插件。 运行项目后,我得到以下错误: Gradle不支持模块。 下面我贴出了与此相关的代码:

  • 好吧,这快把我逼疯了。我试图包括窗体功能与FormFacade与Laravel 5,但我一直得到这个错误: 我将写下我所做的: > 然后,我检查了composer.json文件: 作曲家更新了吗 所有这些都完成了,但我仍然找不到哪里出错了。我寻求帮助,但似乎没有任何效果。 搜索工作: > 拉腊卡斯特教程 在Lavel 5中找不到类“Illumb\Html\HtmlServiceProvider”