我正在创建一个Xamarin Forms项目并使用带有FormsAppCompatActivity的android.support.v7.widget.Toolbar。我在下面发布的代码正在使用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());
}
}
这是我的Resource.Layout.toolbar代码
<?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 Forms更新为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兼容。
答案 0 :(得分:2)
一旦我遇到问题,我就按照以下步骤解决问题:
RequestWindowFeature(WindowFeature.Notiltle)
的第一行和其他所有内容中调用OnCreate(Bundle bundle)
,然后仔细检查是否删除了ActionBar。"?attr/colorPrimary"
而是直接调用颜色资源。毕竟如果你可以发布你的样式xml文件和主要版面,我会更有效地帮助。
答案 1 :(得分:0)
此错误的解决方法如下。
您需要为该解决方案更新Xamarin Forms。在NuGet包中。 也是CardView的包裹。
然后你应该做清理,重建。
这将解决这个问题。
答案 2 :(得分:0)
您可以不在activity.cs中声明布局主题 你必须将它添加到youractivity.cs:
Theme = "@style/MyThemesss"
答案 3 :(得分:0)
我有同样的问题, 可能您可能会删除api 21中不支持的标记中的诸如“ app:layout_scrollFlags”之类的某些选项,如果所有选项都正常,请删除“?attr”值,并改为使用其实际值。
答案 4 :(得分:0)
在我的情况下,我发现我写了android.suport.v7.widget.Toolbar(“ suport”带有一个字母“ p”而不是“ support”)
当我修复它时,它立即起作用。
答案 5 :(得分:0)
清理解决方案并重新启动VS对我有帮助。