【问题标题】:How to build Xamarin Binding Library for estimote-sdk.aar如何为 estimote-sdk.aar 构建 Xamarin 绑定库
【发布时间】:2016-06-23 13:49:47
【问题描述】:

我想在 Xamarin for Android 应用程序中使用 Estimote Beacon SDK。由于 Xamarin 的 Estimote SDK [1] 非常过时,我正在考虑将官方的 Estimote SDK [2] 包含到项目中,该项目提供了一个我试图包含和使用的 estimote-sdk.aar 文件。 Xamarin 文档建议为此目的创建一个绑定库 [3]。

所以我按照这些步骤,制作了一个绑定库,添加了 .aar 并将它的 Build Action 设置为 LibraryProjectZip,但我遇到了几个错误:

虽然我可以解决类似的错误

成员名称不能与其封闭类型相同

通过Metadata.xml 重命名成员,如下所示:

<attr path="/api/package[@name='com.estimote.sdk.cloud.model.google']/class[@name='Beacons']/field[@name='beacons']" name="name">BeaconsList</attr>

我不知道如何解决类似的错误

“Buffer”没有实现接口成员“IBufferedSink.Buffer()”

如何解决?
将 Estimote SDK 包含到 Xamarin for Android 应用程序中的最佳方法是什么?

[1] Xamarin Inc. 的 Android 版 Estimote SDK https://components.xamarin.com/view/estimotesdkandroid
[2] Android 官方 Estimote SDK https://github.com/Estimote/Android-SDK
[3] 在 Xamarin 开发者门户https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/ 中绑定 .AAR

【问题讨论】:

    标签: c# xamarin xamarin.android estimote beacon


    【解决方案1】:

    支持 Estimote SDK 的最佳选择是自己进行绑定。我们确实有一个组件团队,他们试图在每个版本中保持领先,但是每天都会有很多新版本和新库出现。它可以提供相当大的挑战。

    1. "Buffer" does not implement interface member "IBufferedSink.Buffer()"

    这通常意味着该类没有实现相应的接口成员。您有几种方法可以解决此错误。

    1. 为你的违规类创建一个 Partial 类并实现 接口成员。

    2. 查看api.xml 以确保该类正在实现所有 接口的成员。检查所有返回类型/参数/等,以确保它们匹配正确的类型。然后,您必须通过Metadata.xml 更改managedReturnmanagedTypepropertyName

    作为一般参考,我有一个小的装订指南,您可以在这里找到:

    https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb

    您可能对常见的元数据修复最感兴趣:https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb#common-metadata-fixes

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多