Xamarin Android Bindings, использующий Android.WorkManager - PullRequest
0 голосов
/ 01 октября 2018

Мы создаем приложение, которое должно использовать библиотеку Android WorkManager.Файл зависимостей .AAR скомпилирован и протестирован.Мне удалось создать DLL, связав файл AAR зависимости с помощью проекта Java Bindings в Visual Studio.

Однако, когда в проекте 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]]

Я также попытался загрузить AAR-файл Android WorkManager, создал собственный проект библиотеки привязок, скомпилировал его и добавил в основной проект Xamarin Forms вместе с зависимостью AAR.Но я получаю эту ошибку:

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

Есть ли что-то, что я должен включить или изменить в проекте Привязки зависимостей?

Я уже пытался добавить WorkManager AAR в проект Привязки зависимостей и использовать это, но я все еще получаю ClassNotFoundException.Кто-нибудь пробовал использовать Java-зависимость, которая использует WorkManager для Xamarin Android?

1 Ответ

0 голосов
/ 16 апреля 2019

Команда Xamarin только что выпустила NuGet с привязками Android WorkManager: https://www.nuget.org/packages/Xamarin.Android.Arch.Work.Runtime

Установите этот NuGet и убедитесь, что ваш проект Xamarin.Android ориентирован на Android SDK v28 +.Тогда вы сможете использовать пространство имен AndroidX.Work.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...