当我试图绑定包含用于android的北欧dfu的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>但是,我得到了一个额外的错误:
/Users/laerdaldeveloper/Projects/NordicDfuPlayground/NordicDfuPlayground/Transforms/Metadata.xml(11,6)警告BG8A04:不匹配节点。
这是特别令人沮丧的,因为我在一年前成功地绑定了这个库:(对于我可能尝试的东西有什么建议吗?
我也尝试在编译aar之前公开这个类,但是没有帮助(我还添加了一个空类,以验证我已经绑定了更改)。
发布于 2018-12-20 07:51:15
我在https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb上仔细看了看就知道了
默认的vs(至少在mac上)似乎是“类解析”,在这种情况下没有给出多少合理的错误(至少我发现了这种错误)。一旦我切换到jar2xml:
<AndroidClassParser>jar2xml</AndroidClassParser>我发现了一个错误:
JARTOXML :警告android/support/v4/app/NotificationCompat$Builder :在反映no.nordicsemi.android.dfu.DfuBaseService :no.nordicsemi.android.dfu.DfuBaseService时引发了类错误
所以我只需要添加Xamarin.Android.Support.v4,并且修复这个,https://github.com/xamarin/AndroidSupportComponents/issues/124#issuecomment-440782832,然后它工作了.
https://stackoverflow.com/questions/53855574
复制相似问题