Xamarin связывание библиотеки Nordic Dfu - PullRequest
0 голосов
/ 19 декабря 2018

Я получаю некоторые сообщения об ошибках при попытке связать файл aar, содержащий нордическую библиотеку dfu для Android.

BINDINGSGENERATOR: предупреждение BG8604: главный предок DfuBaseService не найден для вложенного типа NO.Nordicsemi.Android.Dfu.DfuBaseService.1.BINDINGSGENERATOR: предупреждение BG8604: главный предок DfuBaseService не найден для вложенного типа NO.Nordicsemi.Android.Dfu.DfuBaseService.2.BINDINGSGENERATOR: предупреждение BG8604: главный предок DfuBaseService не найден для вложенного типа NO.Nordicsemi.Android.Dfu.DfuBaseService.3.BINDINGSGENERATOR: предупреждение BG8604: главный предок DfuBaseService не найден для вложенного типа NO.Nordicsemi.Android.Dfu.DfuBaseService.4.BINDINGSGENERATOR: предупреждение BG8604: главный предок DfuBaseService не найден для вложенного типа NO.Nordicsemi.Android.Dfu.DfuBaseService.5.

Это объявление класса в исходном коде:

public abstract class DfuBaseService extends IntentService implements DfuProgressInfo.ProgressListener {}

Я попытался добавить это в metadata.xml:

<attr path="/api/package[@name='no.nordicsemi.android.dfu']/class[@name='DfuBaseService']" name="extends">mono.android.app.IntentService</attr>

Но затем я получил дополнительную ошибку:

BINDINGSGENERATOR: / Users / laerdaldeveloper / Projects / NordicDfuPlayground / NordicDfuPlayground/Transforms/Metadata.xml(11, 6) предупреждение BG8A04: не найдено ни одного узла.

Это очень неприятно, так как мне удалось связать эту библиотеку год назад :( Любые советы относительно того, что я мог быпопробуйте?

PS Я также пытался сделать этот класс общедоступным до компиляции aar, но это не помогло (я также добавил пустой класс, чтобы убедиться, что изменения связаны)

1 Ответ

0 голосов
/ 20 декабря 2018

Я понял это, посмотрев немного ближе к https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb

По умолчанию в vs (по крайней мере, в Mac), похоже, "class-parse", что в данном случае не дало особых ошибок(что я нашел по крайней мере).Как только я переключился на jar2xml:

<AndroidClassParser>jar2xml</AndroidClassParser>

, я получил эту ошибку:

JARTOXML: предупреждение J2XA006: возникла ошибка отсутствующего класса при отражении no.nordicsemi.android.dfu.DfuBaseService: android /support / v4 / app / NotificationCompat $ Builder

Так что мне просто нужно было добавить Xamarin.Android.Support.v4, а также исправить это, https://github.com/xamarin/AndroidSupportComponents/issues/124#issuecomment-440782832, и тогда это сработало ...

...