使用Xamarin注册Google云消息时发生Java.Lang.LinkageError
我有一个使用Xamarin构建的Android应用程序 我正在尝试将谷歌云消息(GCM)添加到应用程序中 我已按照Xamarin网站上的说明进行操作 调用此行时:使用Xamarin注册Google云消息时发生Java.Lang.LinkageError,java,android,xamarin,google-cloud-messaging,Java,Android,Xamarin,Google Cloud Messaging,我有一个使用Xamarin构建的Android应用程序 我正在尝试将谷歌云消息(GCM)添加到应用程序中 我已按照Xamarin网站上的说明进行操作 调用此行时: var instanceID = InstanceID.GetInstance (this); 我得到以下错误: 引发了类型为“Java.Lang.LinkageError”的异常 完整的代码示例是: using System; using Android.App; using Android.Content; using Andr
var instanceID = InstanceID.GetInstance (this);
我得到以下错误:
引发了类型为“Java.Lang.LinkageError”的异常
完整的代码示例是:
using System;
using Android.App;
using Android.Content;
using Android.Util;
using Android.Gms.Gcm;
using Android.Gms.Gcm.Iid;
namespace ClientApp
{
[Service(Exported = false)]
class RegistrationIntentService : IntentService
{
static object locker = new object();
public RegistrationIntentService() : base("RegistrationIntentService") { }
protected override void OnHandleIntent (Intent intent)
{
try
{
Log.Info ("RegistrationIntentService", "Calling InstanceID.GetToken");
lock (locker)
{
var instanceID = InstanceID.GetInstance (this);
var token = instanceID.GetToken ("3495XXXXXXXX", GoogleCloudMessaging.InstanceIdScope, null);
Log.Info ("RegistrationIntentService", "GCM Registration Token: " + token);
}
}
catch (Exception e)
{
Log.Debug("RegistrationIntentService", "Failed to get a registration token");
return;
}
}
}
}
我已尝试将链接器行为从“仅链接SDK程序集”更改为“不链接”。这确实导致了同样的错误
目标框架设置为Android 4.4(KitKat)
Android的最低版本是4.1(API级别16)
Android的目标版本是4.4(API级别19)
我在项目中包含了这些包:
- Xamarin.GooglePlayServices.Base
- Xamarin.谷歌游戏服务公司.地下室
- Xamarin.GooglePlayServices.Gcm
- Xamarin.Android.Support.v4
任何帮助都将不胜感激。为了解决这个问题,在Xamarin Studio中,我最终尝试删除所有包、组件和引用。然后重新下载并安装到解决方案中。这解决了悬挂机构的错误
我假设GCM引用的是较新的文件版本,而项目中的其他组件引用的是较旧的文件版本?为了解决此问题,在Xamarin Studio中,我最终尝试删除所有包、组件和引用。然后重新下载并安装到解决方案中。这解决了悬挂机构的错误 我假设GCM引用的是较新的文件版本,而项目中的其他组件引用的是较旧的文件版本