【问题标题】:Error inflating class android.suppot.design.widget.NavigationView'错误膨胀类 android.suppot.design.widget.NavigationView'
【发布时间】:2019-11-14 20:59:17
【问题描述】:

当我在 Xamarin.Android 项目中使用 Layout 启动 Activity 时出现此错误。如何解决这个问题? 所有 android nuget 包 v. 28.0.0.3

Android.Views.InflateException: 'Binary XML file line #1: Binary XML file line #1: Error inflating class android.suppot.design.widget.NavigationView'

XAML

<?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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/drawerLayout"
android:fitsSystemWindows="true">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
android:orientation="vertical"
>
    <include
       layout="@layout/include_main"
    />
</LinearLayout>
<android.suppot.design.widget.NavigationView
android:id="@+id/navView"
android:layout_height="match_parent"
android:layout_width="300dp"
android:background="@android:color/white"
android:layout_gravity="start"
 app:headerLayout="@layout/headerlayout"
 app:menu="@menu/navmenu"
    />

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

导航菜单

<?xml version="1.0" encoding="utf-8" ?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group>
<item
android:id="@+id/navProfile"
android:title="Профиль"
android:icon="@mipmap/ic_person"/>
<item android:id="@+id/navPayments"
android:icon="@mipmap/ic_wallet"
android:title="Транзакции"/>
<item android:id="@+id/navHistory"
android:title="История"
android:icon="@mipmap/ic_history"
/>

<item
android:id="@+id/navPromo"
android:title="Промо"
android:icon="@mipmap/ic_discount"

/>
<item
android:id="@+id/navSupport"
android:title="Поддержка"
android:icon="@mipmap/ic_support"
/>
<item
android:id="@+id/navAbout"
android:title="О нас"
android:icon="@mipmap/ic_about"
/>
</group>

</menu>

include_main

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    android:text="Main Layout"
    android:textSize="20sp"
    android:gravity="center"
    android:layout_gravity="center"
    />
</FrameLayout>

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

header_layout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@android:color/white"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<Refractored.Controls.CircleImageView
android:id="@+id/accoutImage"
android:layout_height="100dp"
android:layout_width="100dp"
android:layout_gravity="center"
android:src="@drawable/account"
android:scaleType="centerCrop"
/>

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/accountTitle"
    android:layout_gravity="bottom"
    android:gravity="center"
    android:text="UserName"
    android:layout_marginBottom="12dp"
/>
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
android:layout_gravity="bottom"
android:background="@android:color/holo_blue_dark"/>

</FrameLayout>

styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="Theme.Splash"
   parent="Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/splash</item>
</style>
<style name="Theme.Register" parent="Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>

</style>
<style name="MainTheme" parent="MainTheme.Base">
</style>
<!-- Base theme applied no matter what API -->
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
<item name="windowNoTitle">true</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="windowActionBar">false</item>
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette ->
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">@color/colorPrimary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!-- colorAccent is used as the default value for colorControlActivated
     which is used to tint widgets -->
<item name="colorAccent">@color/colorAccent</item>
<!-- You can also set colorControlNormal, colorControlActivated
     colorControlHighlight and colorSwitchThumbNormal. -->
<item name="windowActionModeOverlay">true</item>

<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
</style>

<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

【问题讨论】:

  • 你能发布你的 build.gradle 吗?

标签: android xamarin xamarin.forms xamarin.android


【解决方案1】:

您拼错了单词support。尝试替换

   <android.suppot.design.widget.NavigationView>

 <android.support.design.widget.NavigationView>

另外,确保nuget:Refractored.Controls.CircleImageView已经安装,否则代码也会报错。

注意:

我已经测试过命名空间是Refractored.Controls.CircleImageView还是refractored.controls.CircleImageView都没有关系。它们都可以工作。

【讨论】:

  • 我创建了一个新应用并复制了您的代码,它可以正常工作。只是替换了一些图像。你可以在这里查看。 github.com/jessiezh0320/AnTestDemo
  • 你可能需要注意一些代码,例如代码`app:headerLayout="@layout/headerlayout"`要与布局名称保持一致。但我发现你使用了header_layout
  • 确保您的应用已安装 Nuget:Xamarin.Android.Support.Design
【解决方案2】:

尝试在您的header_layout 中更改refractored.controls.CircleImageView 而不是Refractored.Controls.CircleImageView

<refractored.controls.CircleImageView
android:id="@+id/accoutImage"
android:layout_height="100dp"
android:layout_width="100dp"
android:layout_gravity="center"
android:src="@drawable/account"
android:scaleType="centerCrop"
/>

和:

   <android.support.design.widget.NavigationView>

代替:

 <android.suppot.design.widget.NavigationView>

【讨论】:

  • 是的,我更改了refractored.controls.CircleImageView&lt;android.suppot.design.widget.NavigationView&gt; 并在启动活动Android.Views.InflateException: 'Binary XML file line #1: Binary XML file line #1: Error inflating class android.suppot.design.widget.NavigationView' 时收到此错误
  • 您确定您使用的是 support 而不是 suppot?
  • 您是否在 build.gradle 中添加了“support:appcompat”和“support:design”?
  • 我找不到 build.gradle 文件。也许visual studio没有这个文件。
  • 是的。问题是我没有继承所需的活动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 2020-07-29
  • 2018-10-02
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多