作者:SHARK | 来源:互联网 | 2023-02-07 08:06
我正在尝试将Localytics SDK(通过他们的Xamarin组件)集成到我的Xamarin Android应用程序中.它在Debug模式下编译,但是如果我切换到Release版本,那么它在编译时出错:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets:错误:执行任务LinkAssemblies时出错:错误XA2006:无法解析对'Android.Gms.Gcm.Iid.InstanceIDListenerService的引用'(在程序集中定义'LocalyticsXamarin.Android,Version = 4.2.0.29760,Culture = neutral,PublicKeyToken = null'),范围为'Xamarin.GooglePlayServices.Gcm,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.当范围与定义程序集不同时,通常意味着转发类型.(com.rpr.mobile.droid)
如果我只将Linker Behavior从Link SDK程序集切换到Do not link,那么它编译得很好,但这不是一个选项,因为那时apk太大了.如果我只切换回Link SDK程序集并将"LocalyticsXamarin.Android"添加到Ignore程序集列表中,它仍然会产生相同的编译错误.
此错误似乎意味着我的应用与Localytics Xamarin包装器之间的Google Play服务版本不匹配,但是他们向我发送了使用最新版本(42.1001.0)的包装器的更新版本,并且我已确认它与之匹配我们的应用.此外,他们自己的示例Android项目编译得很好.我已经梳理了他们的示例Android项目中的每个设置,并将其更改为与我的匹配,但仍然是他们编译而我的编译没有.
这是我的Android项目中的packages.config:
以下是适用于示例Localytics项目的packages.config:
要重现这个问题......
这是Localytics SDK Xamarin包装器的最新代码,它构建得很好.您将需要使用.xam文件并使用Xamarin-Component将其安装到Xamarin Studio.
这是我的Android项目代码的精简版.
我为我的项目的大小道歉,我删除了所有的代码和资源,但它仍然很大,因为组件和包,我不想删除,因为它们与问题相关.您将要打开RPR Mobile - Android.sln解决方案,更改为Release-Prod,然后尝试构建,您将看到错误.
有任何想法吗?
1> Jon Douglas..:
此PATCHED
版本附带的组件似乎未更新为包含您需要的引用,例如Xamarin.GooglePlayServices.Iid
.
您将需要最有可能重新制作此组件或让供应商为您执行此操作.这里似乎有关于最终.dll
添加到项目中的缓存问题.