1

尝试绑定包含适用于 android 的 nordic dfu lib 的 aar 文件时收到一些错误消息。

BINDINGSGENERATOR:警告 BG8604:找不到嵌套类型 NO.Nordicsemi.Android.Dfu.DfuBaseService.1 的顶级祖先 DfuBaseService。BINDINGSGENERATOR:警告 BG8604:找不到嵌套类型 NO.Nordicsemi.Android.Dfu.DfuBaseService.2 的顶级祖先 DfuBaseService。BINDINGSGENERATOR:警告 BG8604:找不到嵌套类型 NO.Nordicsemi.Android.Dfu.DfuBaseService.3 的顶级祖先 DfuBaseService。BINDINGSGENERATOR:警告 BG8604:找不到嵌套类型 NO.Nordicsemi.Android.Dfu.DfuBaseService.4 的顶级祖先 DfuBaseService。BINDINGSGENERATOR:警告 BG8604:找不到嵌套类型 NO.Nordicsemi.Android.Dfu.DfuBaseService.5 的顶级祖先 DfuBaseService。

这是源代码中的类声明:

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之前公开这个类,但没有帮助(我还添加了一个空类,以验证我是否绑定了更改)

4

1 回答 1

0

我通过在https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb上更仔细地研究了这一点

vs(至少在mac上)中的默认值似乎是“类解析”,在这种情况下(至少我发现)并没有给出太多合理的错误。一旦我切换到 jar2xml:

<AndroidClassParser>jar2xml</AndroidClassParser>

我收到了这个错误:

JATOXML:警告 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然后它就可以工作了......

于 2018-12-20T07:51:15.357 回答