当尝试绑定包含北欧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:没有节点匹配。
自从一年前我设法绑定此库以来,这特别令人沮丧:(关于我可以尝试的方法的任何提示吗?
P.S。我还尝试在编译aar之前将此类公开,但是并没有帮助(我还添加了一个空类,以验证是否绑定了更改)
答案 0 :(得分:0)
通过仔细观察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,然后它就可以工作了...