gpt4 book ai didi

使用 3rd 方 Xamarin 组件时,Xamarin 应用程序仅在 Debug模式下编译,而不是在 Release模式下编译

转载 作者:行者123 更新时间:2023-12-05 00:52:06 24 4
gpt4 key购买 nike

我正在尝试将 Localytics SDK(通过他们的 Xamarin component)集成到我的 Xamarin Android 应用程序中。它在 Debug模式下编译,但是如果我切换到发布版本,那么它在编译时会出错:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Error: Error executing task LinkAssemblies: error XA2006: Could not resolve reference to 'Android.Gms.Gcm.Iid.InstanceIDListenerService' (defined in assembly 'LocalyticsXamarin.Android, Version=4.2.0.29760, Culture=neutral, PublicKeyToken=null') with scope 'Xamarin.GooglePlayServices.Gcm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. When the scope is different from the defining assembly, it usually means that the type is forwarded. (com.rpr.mobile.droid)



如果我将链接器行为从仅链接 SDK 程序集切换到不链接,则它可以正常编译,但这不是一个选项,因为 apk 太大了。如果我切换回仅链接 SDK 程序集并将“LocalyticsXamarin.Android”添加到忽略程序集列表,它仍然会给出相同的编译错误。

此错误似乎暗示我的应用程序和 Localytics Xamarin 包装器之间的 Google Play 服务版本不匹配,但是他们向我发送了使用最新版本 (42.1001.0) 的包装器的更新版本,我已确认它与我们的应用程序。此外,他们自己的示例 Android 项目编译得很好。我梳理了他们示例 Android 项目中的每个设置并将其更改为与我的匹配,但他们的仍然可以编译,而我的却没有。

这是我的 Android 项目中的 packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="modernhttpclient" version="2.4.2" targetFramework="MonoAndroid60" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="MonoAndroid60" />
<package id="Rx-Core" version="2.2.5" targetFramework="monoandroid70" />
<package id="Rx-Interfaces" version="2.2.5" targetFramework="monoandroid70" />
<package id="Rx-Linq" version="2.2.5" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Compat" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Core.UI" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Core.Utils" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Fragment" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Media.Compat" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v13" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v4" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.1.1" targetFramework="monoandroid70" />
<package id="Xamarin.Build.Download" version="0.4.3" targetFramework="monoandroid70" />
<package id="Xamarin.Firebase.Analytics" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.Firebase.Analytics.Impl" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.Firebase.Common" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.Firebase.Iid" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Analytics" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Analytics.Impl" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Base" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Basement" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Gcm" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Iid" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Location" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Maps" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.TagManager.V4.Impl" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Tasks" version="42.1001.0" targetFramework="monoandroid70" />
</packages>

这是适用于示例 Localytics 项目的 packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Xamarin.Android.Support.Compat" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Core.UI" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Core.Utils" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Design" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Fragment" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Media.Compat" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Transition" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v4" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v7.CardView" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v7.MediaRouter" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v7.Palette" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.1.1" targetFramework="MonoAndroid70" />
<package id="Xamarin.Build.Download" version="0.4.3" targetFramework="MonoAndroid70" />
<package id="Xamarin.Forms" version="2.3.3.193" targetFramework="MonoAndroid70" />
<package id="Xamarin.GooglePlayServices.Base" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Basement" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Clearcut" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Gass" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Gcm" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Iid" version="42.1001.0" targetFramework="monoandroid70" />
<package id="Xamarin.GooglePlayServices.Tasks" version="42.1001.0" targetFramework="monoandroid70" />
</packages>

要重现该问题...

Here是 Localytics SDK Xamarin 包装器的最新代码,它构建得很好。您需要获取 .xam 文件并使用 Xamarin-Component 将其安装到 Xamarin Studio。

Here是我的 Android 项目代码的精简版。

我为我的项目的大小道歉,我删除了所有代码和资源,但由于组件和包,我不想删除它们,因为它们与问题相关,所以它仍然很大。您需要打开 RPR Mobile - Android.sln 解决方案,更改为 Release-Prod,然后尝试构建,您将看到错误。

有任何想法吗?

最佳答案

随此提供的组件 PATCHED版本似乎没有更新以包含您需要的引用资料,例如 Xamarin.GooglePlayServices.Iid .

您很可能需要重新制作此组件或让供应商为您重新制作。关于最终 .dll 的内容,这里似乎存在缓存问题。正在添加到您的项目中。

关于使用 3rd 方 Xamarin 组件时,Xamarin 应用程序仅在 Debug模式下编译,而不是在 Release模式下编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com