我有一个带有Kotlin代码的Android绑定库,只要它在Kotlin代码中按runBlocking {}就会退出。
E(28583:28691)错误[19]-工作线程捕获到异常: 无法解决以下问题:Lkotlinx /协程/ BuildersKt; E(28583:28691) Java.Lang.NoClassDefFoundError:无法解决以下问题: Lkotlinx /协程/ BuildersKt; ---> Java.Lang.ClassNotFoundException: 在路径上找不到类“ kotlinx.coroutines.BuildersKt”: DexPathList [[zip文件 “ /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-协程的支持?
答案 0 :(得分:1)
您说得对,Xamarin.Kotlin.StdLib 不包括对 Kotlinx 协程的支持。
为了在 Xamarin Android 绑定库中拥有 Kotlinx-coroutines,您必须添加 KotlinX.Coroutines NuGet 包作为应用项目的依赖项,并且绑定库项目。
所以如果你有这样的事情:
<块引用>MyAndroidApp.proj -> MyBindingLibrary.proj
两个项目都必须添加 KotlinX.Coroutines 依赖项。
注意就我而言,Microsoft 的 binding 不起作用。我不得不使用 Karamunting 的 binding。