我有使用MVVMCross框架的Xamarin Android应用程序。我的应用定位到Android 8.1
现在,我正在将MVVMCross NuGet软件包从6.2.1版本升级到6.3.1版本,并且遇到了一些问题,这些问题导致代码无法编译。
首先,MVVMCross v.6.3.1要求Android项目以Android 9.0为目标。好的,我更新了目标框架属性和android清单以支持9.0版本。我的应用已编译并正常运行。
下一步,我已经将所有MVVMCross NuGet软件包更新为最新版本6.3.1。更新期间,几个新的NuGet软件包已添加到我的项目中。其中之一是Xamarin.Android.Support.DrawerLayout。之所以添加它,是因为Xamarin.Android.Support.Core.UI程序包在Android 9.0上取决于它。
所有MVVMCross软件包都已成功更新,但是VisualStudio开始显示错误:
The type 'DrawerLayout' exists in both 'Xamarin.Android.Support.Core.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null'
and 'Xamarin.Android.Support.DrawerLayout, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null'
使用代码:
public abstract class ViewWithMenuBase<T> : ViewBase<T> where T : ViewModelWithMenuBase
{
protected override int? ToolbarButtonResourceId => Resource.Drawable.ic_menu_black_24dp;
private DrawerLayout drawerLayout;
private NavigationView navigationView;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
}
}
基类定义如下:
public abstract class ViewBase<T>: MvxAppCompatActivity<T> where T : class, IMvxViewModel
{
...
}
现在,如果我尝试删除VisualStudio代码编辑器中的Xamarin.Android.Support.Core.UI或Xamarin.Android.Support.DrawerLayout错误消失,但由于缺少有关删除的程序包的错误引用而导致应用无法编译。
那么,您知道如何解决此错误吗?我应该看哪里?
谢谢。
答案 0 :(得分:0)
通过名称空间完全限定要使用的DrawerLayout。解决此问题的一种可能方法是使用$(document).ready(function() {
$('#example').DataTable({
"processing": true,
"serverSide": true,
"ajax": "../server_side/scripts/server_processing"
});
});
指令,如下所示:
IF OBJECT_ID('tempdb..#MyTempTable') IS NOT NULL
DROP TABLE #MyTempTable;
CREATE TABLE #MyTempTable
(
ItemName NVARCHAR(100) ,
ItemCode NVARCHAR(100) ,
StyleNo NVARCHAR(100) ,
UPC NVARCHAR(100) ,
EAN NVARCHAR(100) ,
UnitFactor NVARCHAR(100) ,
ItemNameGroup NVARCHAR(100)
);
WITH cte
AS ( SELECT [ItemName] ,
[ItemCode] ,
[StyleNo] ,
[UPC] ,
[EAN] ,
[UnitFactor] ,
ROW_NUMBER() OVER ( PARTITION BY [ItemName] ORDER BY [ItemName] ) AS rn
FROM [dbo].[NewTest]
)
INSERT INTO [#MyTempTable]
( [ItemName] ,
[ItemCode] ,
[StyleNo] ,
[UPC] ,
[EAN] ,
[UnitFactor] ,
[ItemNameGroup]
)
SELECT c.[ItemName] ,
c.[ItemCode] ,
c.[StyleNo] ,
c.[UPC] ,
c.[EAN] ,
c.[UnitFactor] ,
t.[ItemName]
FROM [cte] AS c
INNER JOIN ( SELECT [cte].[ItemName]
FROM [cte]
WHERE [cte].[rn] = 1
) t ON c.[ItemName] = t.[ItemName];
SELECT [mtt].[ItemName] ,
[mtt].[ItemCode] ,
[mtt].[StyleNo] ,
[mtt].[UPC] ,
[mtt].[EAN] ,
[mtt].[UnitFactor] ,
[mtt].[ItemNameGroup]
FROM [#MyTempTable] AS [mtt];