我正在努力将Java SDK移植到Xamarin.Android。
在解决了很多错误之后,我陷入了困境:
/Users/alejandro_l/Projects/KontaktBeaconSDK/KontaktBeaconSDK/obj/Debug/generated/src/Com.Kontakt.Sdk.Android.Ble.Configuration.Scan.EddystoneScanContext.cs(65,65):错误CS1715:{{ 1}} System.Collections.Generic.ICollection'匹配重写成员`Com.Kontakt.Sdk.Android.Ble.Configuration.Scan.AbstractProfileSpecificScanContext.EventTypes'(CS1715)(KontaktBeaconSDK)
为了解决错误,我可以在metadata.xml中使用以下行,告诉生成器更改方法的类型以与抽象类匹配:
Com.Kontakt.Sdk.Android.Ble.Configuration.Scan.EddystoneScanContext.EventTypes': type must be
生成的输出仍然具有错误的形状:
<attr path="/api/package[@name='com.kontakt.sdk.android.ble.configuration.scan']/class[@name='EddystoneScanContext']/method[@name='getEventTypes' and count(parameter)=0]" name="managedType">System.Collections.Generic.ICollection</attr>
正如您所见,System.Collections.ICollection已生成,而非System.Collections。 Generic .ICollection。 注意:我甚至还没弄清楚如何设置泛型类型,但这是下一步。
我是绑定的新手,我无法弄清楚。有人能告诉我我做错了什么吗?我在这里尝试不可能吗?我是否需要更改SDK的源代码? (请注意,如果我使用“Build”并手动更改输出,我可能会在将来获得dll(尽管仍然会有49个错误),但我想知道我是否能以正确的方式解决。)
我使用的另一个有用的链接:https://gist.github.com/brendanzagaeski/9607158
答案 0 :(得分:0)
找到它:
<attr path="/api/package[@name='com.kontakt.sdk.android.ble.configuration.scan']/class[@name='EddystoneScanContext']/method[@name='getEventTypes' and count(parameter)=0]" name="return">System.Collections.Generic.ICollection<Com.Kontakt.Sdk.Android.Ble.Discovery.EventType></attr>
由于name="return"
,错误似乎已消失。我不知道为什么返回没有出现在文档中但它出现在api.xml中所以应该没问题。