如何为 estimote 构建 Xamarin 绑定库-sdk.aar
How to build Xamarin Binding Library for estimote-sdk.aar
我想在 Xamarin 中为 Android 应用程序使用 Estimote Beacon SDK。由于 Xamarin 的 Estimote SDK [1] 非常过时,我正在考虑将官方 Estimote SDK [2] 包含到项目中,该项目提供了一个 estimote-sdk.aar
我试图包含和使用的文件。 Xamarin 文档建议为此创建一个绑定库 [3]。
所以我按照这些步骤制作了一个绑定库,添加了 .aar
并将其 Build Action 设置为 LibraryProjectZip
但我遇到了几个错误:
虽然我可以解决像
这样的错误
member names cannot be the same as their enclosing type
通过 Metadata.xml
重命名成员,如下所示:
<attr path="/api/package[@name='com.estimote.sdk.cloud.model.google']/class[@name='Beacons']/field[@name='beacons']" name="name">BeaconsList</attr>
我不知道如何解决像
这样的错误
"Buffer" does not implement interface member "IBufferedSink.Buffer()"
如何解决?
将 Estimote SDK 包含到 Xamarin for Android 应用程序的最佳方法是什么?
[1] Xamarin Inc. Android 的 Estimote SDK https://components.xamarin.com/view/estimotesdkandroid
[2] Android https://github.com/Estimote/Android-SDK
的官方 Estimote SDK
[3] 在 Xamarin 开发者门户中绑定 .AAR https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/
支持 Estimote SDK 的最佳方式是自己进行绑定。我们确实有一个组件团队,他们试图掌握每个版本,但每天都有如此多的新版本和新库出现。它可以提供相当大的挑战。
"Buffer" does not implement interface member "IBufferedSink.Buffer()"
这通常意味着 class 没有实现相应的接口成员。您有几种方法可以解决此错误。
创建一个 Partial
class 你的冒犯 class 并实施
接口成员.
查看 api.xml
以确保 class 正在实施所有
接口的成员。检查所有 return 类型/参数/等以确保它们匹配正确的类型。然后,您必须通过 Metadata.xml
.
更改 managedReturn
、managedType
或 propertyName
作为一般参考,我有一个小的装订指南,您可以在这里找到:
https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb
具体来说,您可能对常见的元数据修复最感兴趣:https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb#common-metadata-fixes
我想在 Xamarin 中为 Android 应用程序使用 Estimote Beacon SDK。由于 Xamarin 的 Estimote SDK [1] 非常过时,我正在考虑将官方 Estimote SDK [2] 包含到项目中,该项目提供了一个 estimote-sdk.aar
我试图包含和使用的文件。 Xamarin 文档建议为此创建一个绑定库 [3]。
所以我按照这些步骤制作了一个绑定库,添加了 .aar
并将其 Build Action 设置为 LibraryProjectZip
但我遇到了几个错误:
虽然我可以解决像
这样的错误member names cannot be the same as their enclosing type
通过 Metadata.xml
重命名成员,如下所示:
<attr path="/api/package[@name='com.estimote.sdk.cloud.model.google']/class[@name='Beacons']/field[@name='beacons']" name="name">BeaconsList</attr>
我不知道如何解决像
这样的错误"Buffer" does not implement interface member "IBufferedSink.Buffer()"
如何解决?
将 Estimote SDK 包含到 Xamarin for Android 应用程序的最佳方法是什么?
[1] Xamarin Inc. Android 的 Estimote SDK https://components.xamarin.com/view/estimotesdkandroid
[2] Android https://github.com/Estimote/Android-SDK
的官方 Estimote SDK
[3] 在 Xamarin 开发者门户中绑定 .AAR https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/
支持 Estimote SDK 的最佳方式是自己进行绑定。我们确实有一个组件团队,他们试图掌握每个版本,但每天都有如此多的新版本和新库出现。它可以提供相当大的挑战。
"Buffer" does not implement interface member "IBufferedSink.Buffer()"
这通常意味着 class 没有实现相应的接口成员。您有几种方法可以解决此错误。
创建一个
Partial
class 你的冒犯 class 并实施 接口成员.查看
api.xml
以确保 class 正在实施所有 接口的成员。检查所有 return 类型/参数/等以确保它们匹配正确的类型。然后,您必须通过Metadata.xml
. 更改
managedReturn
、managedType
或 propertyName
作为一般参考,我有一个小的装订指南,您可以在这里找到:
https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb
具体来说,您可能对常见的元数据修复最感兴趣:https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb#common-metadata-fixes