gpt4 book ai didi

c# - 绑定(bind)到位于 Xamarin 绑定(bind) Java 库中的服务

转载 作者:太空狗 更新时间:2023-10-29 14:56:16 27 4
gpt4 key购买 nike

我有一个导入的 Java 库,它是我解决方案中的“绑定(bind)库”项目。

我正在尝试从解决方案中的另一个项目绑定(bind)到第 3 方库中的服务。

第 3 方库文档 [在 java 中] 非常简单:

在Activity类中声明MeshService对象:

private MeshService mService;

绑定(bind)到 onCreate 中的服务:

Intent bindIntent = new Intent(this, MeshService.class);
bindService(bindIntent, mServiceConnection, Context.BIND_AUTO_CREATE);

当我尝试使用以下代码进行绑定(bind)时:

Intent bindIntent = new Intent(this, typeof(MeshService));
mServiceConnection = new ServiceConnection(this);
BindService(bindIntent, mServiceConnection, Bind.AutoCreate);

第一行抛出异常

  Java.Lang.ClassNotFoundException: Didn't find class   "com.csr.mesh.MeshService" on path:DexPathList[[zip file "/data/app/DeakoMesh.Android-1/base.apk"],nativeLibraryDirectories=[/data/app/DeakoMesh.Android-1/lib/arm, /system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

当我尝试使用另一段代码进行绑定(bind)时:

Intent bindIntent = new Intent("com.csr.mesh.MeshService");
mServiceConnection = new ServiceConnection(this);
BindService(bindIntent, mServiceConnection, Bind.AutoCreate);

没有异常(exception),但服务绑定(bind)永远不会发生并且 mServiceConnection 为 null。 (请看下面的代码)

问题:如何绑定(bind)到另一个项目中的服务?我应该提供什么上下文而不是“this”?

Intent bindIntent = new Intent(this, typeof(MeshService));

mServiceConnection 代码:

class ServiceConnection : Java.Lang.Object, IServiceConnection
{
MainActivity activity;

public ServiceConnection(MainActivity activity)
{
this.activity = activity;
}

public void OnServiceConnected(ComponentName name, IBinder service)
{
activity.meshService = ((MeshService.LocalBinder)service).Service;
activity.isBound = true;
}

public void OnServiceDisconnected(ComponentName name)
{
activity.meshService = null;
activity.isBound = false;
}
}

在此先非常感谢您提供的任何提示!

还在 xamarin 论坛上发帖: https://forums.xamarin.com/discussion/44647/binding-to-a-service-that-lives-in-a-bound-java-library?new=1

最佳答案

您的库绑定(bind)似乎无法正常工作,否则您应该能够看到自动完成建议并且不会出现此类错误。检查这个 Article .这里详细解释了如何绑定(bind) Android 库

关于c# - 绑定(bind)到位于 Xamarin 绑定(bind) Java 库中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146989/

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