【问题标题】:Xamarin Android Bindings that uses Android.WorkManager使用 Android.WorkManager 的 Xamarin Android 绑定
【发布时间】:2018-10-01 07:44:59
【问题描述】:

我们正在制作一个需要使用 Android 的 WorkManager 库的应用。依赖 .AAR 文件经过编译和测试工作。我能够通过使用 Visual Studio 的 Java 绑定项目绑定依赖 AAR 文件来构建 DLL。

但是,当 Xamarin Android 项目使用使用 Android WorkManager 的依赖库时,它会抛出异常:

Java.Lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/WorkManager; ---> 
Java.Lang.ClassNotFoundException: Didn't find class "androidx.work.WorkManager" on path: 
DexPathList[[zip file "/data/app/com.appname.app-vXQN7f21kz_QrhvSakWVRA==/base.apk"],nativeLibraryDirectories=[/data/app/com.appname.app-vXQN7f21kz_QrhvSakWVRA==/lib/arm64, /data/app/com.appname.app-vXQN7f21kz_QrhvSakWVRA==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]

我还尝试下载 Android WorkManager AAR 文件,创建自己的 Bindings Library 项目,对其进行编译,并将其与依赖项 AAR 一起添加到主 Xamarin Forms 项目中。但我得到这个错误:

error: CommandsCompletedListener is not public in SystemAlarmDispatcher; cannot be accessed from outside package
    androidx.work.impl.background.systemalarm.SystemAlarmDispatcher.CommandsCompletedListener

我应该在依赖项绑定项目中包含或修改一些内容吗?

我已经尝试将 WorkManager AAR 添加到依赖项绑定项目并使用它,但我仍然得到ClassNotFoundException。有没有人尝试使用使用 WorkManager for Xamarin Android 的 Java 依赖项?

【问题讨论】:

标签: c# xamarin xamarin.android


【解决方案1】:

Xamarin 团队刚刚发布了一个带有 Android WorkManager 绑定的 NuGet: https://www.nuget.org/packages/Xamarin.Android.Arch.Work.Runtime

安装此 NuGet 并确保您的 Xamarin.Android 项目面向 Android SDK v28+。然后你应该可以使用 AndroidX.Work 命名空间了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    相关资源
    最近更新 更多