Xamarin.android 使用MvxAppCompatActivity时出错
我正在用Xamarin.Android和MvvmCross编写一个应用程序。我希望我的Xamarin.android 使用MvxAppCompatActivity时出错,xamarin.android,mvvmcross,appcompatactivity,Xamarin.android,Mvvmcross,Appcompatactivity,我正在用Xamarin.Android和MvvmCross编写一个应用程序。我希望我的活动继承自MvxAppCompatActivity,以便使用片段。这是我的基本类: public class BaseActivity<TViewModel> : MvxAppCompatActivity<TViewModel> where TViewModel : MvxViewModel { public new TViewModel ViewModel {
活动
继承自MvxAppCompatActivity
,以便使用片段。这是我的基本类:
public class BaseActivity<TViewModel> : MvxAppCompatActivity<TViewModel> where TViewModel : MvxViewModel
{
public new TViewModel ViewModel
{
get { return base.ViewModel; }
set { base.ViewModel = value; }
}
}
公共类BaseActivity:MVXAppCompativity其中TViewModel:MvxViewModel
{
公共新TViewModel ViewModel
{
获取{return base.ViewModel;}
设置{base.ViewModel=value;}
}
}
我在我的活动的OnCreate
中遇到此错误:
未能解决以下问题:Landroid/support/v7/appcompat/R$drawable;没有
在路径上找到类“android.support.v7.appcompat.R$drawable”:
路径列表
但是如果我将MvxAppCompatActivity
改为MvxActivity
,效果会很好……为什么呢?可能有很多原因,但可能是缺少一些android支持包。主要是缺少Xamarin.Android.Support.Design
导致了这个错误。所以,检查你是否已经添加了它,如果没有添加它,它应该可以解决你的问题。
如果没有,很可能您缺少其他一些android支持包,这可能是几件事,但可能是缺少一些android支持包。主要是缺少Xamarin.Android.Support.Design
导致了这个错误。所以,检查你是否已经添加了它,如果没有添加它,它应该可以解决你的问题。
如果没有,很可能您缺少其他一些android支持包我下载了您的解决方案并尝试构建android项目。它失败,出现18次相同的错误:
错误:在包中找不到属性“loginButtonBackgroundColor”的资源标识符…
因此,在对您的解决方案进行了一些检查之后,我执行了以下步骤来解决您的问题:
1) 在login\u screen.axml中,我看到您有这样一行:
xmlns:[YOURNAMESPACE]=”http://schemas.android.com/apk/res/[您的套餐]“
这是不必要的。删除它,并将行[YOURNAMESPACE]:loginButtonBackgroundColor=…
更改为local:loginButtonBackgroundColor=…
后,构建成功
2) 我看到一些布局文件位于/drawable
文件夹中(button\u round\u corner.xml
,input\u box.xml
和login\u button.xml
)。我将它们移动到/layout
文件夹,并修复了更改产生的问题(只有两个)
3) 使Setup
类继承自MvxAppCompatSetup
4) 在LoginButton
控件上添加了一个RegisterAttribute
。因此,类定义如下所示:
using Android.Runtime;
...
namespace Xxx.Droid.Components
{
[Register(nameof(LoginButton))]
public class LoginButton : FrameLayout, IMvxNotifyPropertyChanged
{
...
}
}
就这样!可能(2)是不必要的,但把它留在这里以防万一。我下载了你的解决方案,并试图构建Android项目。它失败,出现18次相同的错误:
错误:在包中找不到属性“loginButtonBackgroundColor”的资源标识符…
因此,在对您的解决方案进行了一些检查之后,我执行了以下步骤来解决您的问题:
1) 在login\u screen.axml中,我看到您有这样一行:
xmlns:[YOURNAMESPACE]=”http://schemas.android.com/apk/res/[您的套餐]“
这是不必要的。删除它,并将行[YOURNAMESPACE]:loginButtonBackgroundColor=…
更改为local:loginButtonBackgroundColor=…
后,构建成功
2) 我看到一些布局文件位于/drawable
文件夹中(button\u round\u corner.xml
,input\u box.xml
和login\u button.xml
)。我将它们移动到/layout
文件夹,并修复了更改产生的问题(只有两个)
3) 使Setup
类继承自MvxAppCompatSetup
4) 在LoginButton
控件上添加了一个RegisterAttribute
。因此,类定义如下所示:
using Android.Runtime;
...
namespace Xxx.Droid.Components
{
[Register(nameof(LoginButton))]
public class LoginButton : FrameLayout, IMvxNotifyPropertyChanged
{
...
}
}
就这样!可能(2)是不必要的,但把它留在这里以防万一。我有Xamarin.Android.Support.Design
26.1.0.1版,我尝试添加了一堆支持包,但没有任何效果,尽管我遗漏了一些东西是有意义的。所有的包都在同一个版本中吗?所有的Xamarin.Android.Support.*是的,这是wierd,你是否尝试过删除bin和obj文件夹并在之后重建?是的,我尝试过我有Xamarin.Android.Support.Design
26.1.0.1版,我尝试过添加一堆支持包,但没有任何效果,虽然我遗漏了一些东西是有意义的,但您是否拥有相同版本的所有软件包?所有的Xamarin.Android.Support.*是的,这是wierd,您是否尝试过删除bin和obj文件夹并在之后重建?是的,我尝试过,您的项目目标版本和min版本是什么?min版本是API级别15,目标是API级别26(在自动设置上,以获取最新信息)你介意分享一个可以通过在线回购重现问题的基本演示吗?@Darius你提供的示例,它是否会在启动后产生你发布的错误?我可以毫无问题地启动应用程序并四处导航。请注意你的设置。cs
正在继承MvxAndroidSetup
你需要将其更改为MvxAppCompatSetup
(它使用MvxAppCompatViewPresenter
)以使用compat视图类型。我还应该提到我必须更改命名空间xmlns:azzimovmobile=”http://schemas.android.com/apk/res/com.azzimov.azzimovmobile"
因为我无法编译项目。您的项目目标版本和最低版本是什么?最低版本是API级别15,目标是API 26(自动设置为最新版本)你介意分享一个可以通过在线回购重现问题的基本演示吗?@Darius你提供的示例,它会产生你在发布后发布的错误吗?我可以在没有我的情况下发布应用程序