Xamarin 是不是支持 Xamarin Android 绑定库中的 Kotlin 协程?

Posted

技术标签:

【中文标题】Xamarin 是不是支持 Xamarin Android 绑定库中的 Kotlin 协程?【英文标题】:Does Xamarin support Kotlin coroutines in a Xamarin Android Binding Library?Xamarin 是否支持 Xamarin Android 绑定库中的 Kotlin 协程? 【发布时间】:2019-11-17 08:38:49 【问题描述】:

我有一个带有 Kotlin 代码的 android 绑定库,只要在 Kotlin 代码中遇到 runBlocking,它就会退出。

E(28583:28691) 错误 [19] - 工作线程捕获到异常: 解决失败:Lkotlinx/coroutines/BuildersKt;电子(28583:28691) Java.Lang.NoClassDefFoundError:无法解决: Lkotlinx/协程/BuildersKt; ---> Java.Lang.ClassNotFoundException: 在路径上找不到类“kotlinx.coroutines.BuildersKt”: DexPathList[[压缩文件 "/data/app/de.mycompany.app.myproduct-1/base.apk"],nativeLibraryDirectories=[/data/app/de.mycompany.app.myproduct-1/lib/arm, /vendor/lib, /system/lib]]

在我的 Kotlin AAR 模块中,我有以下依赖项

实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version” => 等效 Xamarin.Kotlin.StdLib 实施 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.1' => 等效 Xamarin.???? 执行 “org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.1” => 相当于 Xamarin.????

我猜 Xamarin.Kotlin.StdLib 不包含对 Kotlinx 协程的支持。 有没有办法在 Xamarin Android 绑定库中获得对 Kotlinx 协程的支持?

【问题讨论】:

【参考方案1】:

你说得对,Xamarin.Kotlin.StdLib 不包括对 Kotlinx 协程的支持。

为了在 Xamarin Android 绑定库中拥有 Kotlinx-coroutines,您必须添加 KotlinX.Coroutines NuGet 包作为应用项目的依赖项,并且绑定库项目。

所以如果你有这样的事情:

MyAndroidApp.proj -> MyBindingLibrary.proj

两个项目都必须添加 KotlinX.Coroutines 依赖。

注意就我而言,微软的binding 没有工作。我不得不使用 Karamunting 的binding。

【讨论】:

以上是关于Xamarin 是不是支持 Xamarin Android 绑定库中的 Kotlin 协程?的主要内容,如果未能解决你的问题,请参考以下文章

IBM.WatsonDeveloperCloud.SpeechToText.v1 是不是支持 Xamarin Forms 中的跨平台支持

Xamarin挖墙脚系列:IOS-关于手机支持的屏幕方向

Xamarin,如何使用 WebView 浏览 lokala 文件,(不是预装文件)

VS2015 支持 Xamarin 吗? [复制]

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏啦