但是,如果我尝试使用此AND并使用Mvvm Fragments支持(需要引用Mono.AndroID.Support.v4),我会收到链接器错误,如下所示:
error : Duplicate managed type found! MapPings between managed types and Java types must be unique. First Type: 'AndroID.Support.V4.App.FragmentManager/IOnBackStackChangedListenerImplementor,Xamarin.AndroID.Support.v4-r18,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'; Second Type: 'AndroID.Support.V4.App.FragmentManager/IOnBackStackChangedListenerImplementor,Mono.AndroID.Support.v4,Version=0.0.0.0,PublicKeyToken=84e04ff9cfb79065'
删除旧的支持库引用会导致不同的链接器错误;
错误CS0012:类型AndroID.Support.V4.App.FragmentActivity’在未引用的程序集中定义.考虑添加对assemblyMono.AndroID.Support.v4的引用,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = 84e04ff9cfb79065′
解决方法 我相信这是一个普遍的问题,因为Xamarin将一个装配从’Mono’重新命名为’Xamarin’.像MvvmCross这样的第三方程序集以及Google Play服务组件之类的其他程序集目前链接着与Xamarin.AndroID(以前的Mono for AndroID)一起提供的“Mono”命名程序集.
目前,MvvmCross无法通过Google Play组件删除对“Xamarin”命名程序集的链接而不删除对Maps v2的支持 – 我们目前有更多用户要求支持地图,然后要求支持最新支持库中的导航抽屉.
如果有人需要链接“Xamarin”命名的程序集,那么您需要一些方法来重定向程序集以使用更改的名称.我知道这样做的方法是:
>完全.Net我相信你可以使用app.config文件中的’绑定重定向’来做到这一点,但我不认为这些在Xamarin.AndroID中可用.
>你可以使用一个虚拟的’Mono.AndroID.Support.v4’程序集进行重定向,该程序集只包含类型的[TypeForwardedTo]声明 – 生成它会有点乏味但应该有效.我试图生成一个TypeForwardTo程序集–https://gist.github.com/slodge/6790040 – 但我认为Xamarin使用程序集强命名的事实意味着我不能让它工作:/ Xamarin可能会这样吗?>您可以分叉并重建现有的MvvmCross’Fragging’程序集 – 它并不大 – 因此它引用了’Xamarin’命名的组件.您还需要为您需要的任何其他程序集执行此 *** 作 – 例如谷歌播放地图.
以上是内存溢出为你收集整理的android – MvvmCross – 尝试使用Fragments和最新支持lib导致链接问题全部内容,希望文章能够帮你解决android – MvvmCross – 尝试使用Fragments和最新支持lib导致链接问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)