【问题标题】:Xamarin binding .aar with Metadata.xml doesn't seem to workXamarin 绑定 .aar 与 Metadata.xml 似乎不起作用
【发布时间】:2017-04-22 12:21:35
【问题描述】:

我正在尝试绑定一个用于语音聊天的 Android SDK (zoom sdk)。 他们有两个 .aar 文件(zoomcoomonlib.aarzoomsdk.aar

我知道我必须为每个 .aar 创建单独的绑定项目,然后引用它们。

绑定 zoomsdk.aar 时出现以下错误

The type `Com.Zipow.Videobox.Onedrive.ErrorEventArgs' already contains a definition for `P0' (CS0102) (B14)

在.aar 文件中,我导航到package com.zipow.videobox.onedrive; 到界面IODFoldLoaderListener

下面是它的内容

看来onError 方法的参数String var1 导致了问题。

xamarin studio 生成的obj/debug/api.xml 确认(在屏幕截图下方)onError 将具有名为p0 的第一个参数:

因此,在这种情况下,我更改了metadata.xml 以给这个参数一个有意义的名称。

如下截图:

但即使这样做了,我也会遇到同样的错误。那个错误没有解决。 此外,现在如果我看到obj/debug/api/.xml 文件,我看到IODFoldLoaderListener 类的内容保持不变。

所以更改 metadata.xml 似乎没有效果。

【问题讨论】:

  • 由于您使用的是图像而不是文本,因此我不能不剪切/粘贴答案。您没有在元数据转换中使用完整的方法签名。尝试查看 Jon Douglas 优秀绑定文档的第 2 部分:gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb

标签: android xamarin.android xamarin-studio xamarin-binding


【解决方案1】:

您的定义需要进行相当多的更改。下面是一个解决同样问题的例子:

<attr path="/api/package[@name='com.emarsys.mobileengage.inbox']/interface[@name='ResetBadgeCountResultListener']/method[@name='onError' and count(parameter)=1 and parameter[1][@type='java.lang.Exception']]" name="argsType">ResetBadgeCountResultListenerOnErrorArgs</attr>

请注意此处的/interfaceargsType 项目,因为您的初始定义不正确。然后,您可以将参数更改为字符串,而不是我的示例中的 java.lang.Exception

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多