更新到v7.AppCompat版本23.3 Xamarin表单www.example.com后,膨胀类android.support.v7.widget.Toolbar时出错2.2.0.31

ecfdbz9o  于 2023-01-03  发布在  Android
关注(0)|答案(7)|浏览(208)

我正在创建一个Xamarin表单项目,并使用android.support.v7.widget.Toolbar和FormsAppCompatActivity。我下面发布的代码是使用Xamarin.Android.Support.v7.AppCompat版本:23.0.1.3
但是在我升级到23.3.0之后,这已经开始抛出Android.Views.InflateException:二进制XML文件第1行:膨胀类android.support.v7.widget.toolbar异常时出错。
下面是我的MainActivity代码

[Activity(Label = "AppMob.Client", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {

        protected override void OnCreate(Bundle bundle)
        {
            FormsAppCompatActivity.ToolbarResource = Resource.Layout.toolbar;
            FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs;

            base.OnCreate(bundle);

            global::Xamarin.Forms.Forms.Init(this, bundle);

            Xamarin.FormsMaps.Init(this,bundle);                        
            GoogleAnalyticsHelper.GetGASInstance().Initialize_NativeGAS(Application.Context);  //For GA initialization
            LoadApplication(new App());
        }
}

这是我的资源.布局.工具栏的代码

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_scrollFlags="scroll|enterAlways" />

我已将Xamarin表单更新到2.2.0.31
此版本Xamarin Forms的依赖项包括:

Xamarin.Android.Support.v4 (= 23.3.0) 
Xamarin.Android.Support.Design (= 23.3.0) 
Xamarin.Android.Support.v7.AppCompat (= 23.3.0) 
Xamarin.Android.Support.v7.CardView (= 23.3.0) 
Xamarin.Android.Support.v7.MediaRouter (= 23.3.0)

因此,它应与23.3兼容。

i7uaboj4

i7uaboj41#

可能您没有在activity.cs中声明布局主题,您必须将其添加到您的activity.cs中:

Theme = "@style/MyThemesss"
wsewodh2

wsewodh22#

一旦我有你的问题,我做了以下步骤来解决它:

  • OnCreate(Bundle bundle)的第一行调用RequestWindowFeature(WindowFeature.Notiltle),然后再次检查是否删除了ActionBar。
  • 清理解决方案,删除所有支持库依赖项,更改工具栏ID并重新启动Visual Studio(或Xamarin Studio),然后重新添加支持库并生成解决方案。(有时错误的原因是解决方案中存在缓存或大量其他垃圾文件。)
  • 考虑不使用"?attr/colorPrimary",而是直接调用颜色资源。

毕竟,如果你能发布你的风格xml文件和主布局,我会帮助更有效。

6gpjuf90

6gpjuf903#

此错误的解决方法如下。
你需要为那个解决方案更新Xamarin表单。在NuGet包里。那个也说CardView的包。
那你就应该清理重建。
这将解决这个问题。

piv4azn7

piv4azn74#

我遇到了同样的问题,也许你可以删除一些选项,如“app:layout_scrollFlags”,在API 21中不支持,如果所有选项都可以,删除“?attr”值,并把它们的真实的值代替。

ih99xse1

ih99xse15#

在我的例子中,我发现我写了android.support.v7.widget.Toolbar(“suport”用一个字母“p”代替了“support”)
我一修好它它就能用了。

lf3rwulv

lf3rwulv6#

清洁溶液和重启VS帮助了我。

tyky79it

tyky79it7#

调试Xamarin项目时,请转到“调试”-〉“窗口”-〉“异常设置”在“公共语言运行时异常”下取消选中“系统.异常

相关问题