Xamarin.Android绑定工具忽略类



我在为Kontakt.io的Android SDK v1.0.6创建绑定时遇到了一些问题-https://github.com/kontaktio/Android-SDK/tree/master/1.0.6.

我"差不多完成了"(著名的最后一句话,是吗?)但由于某种原因,有些类被完全忽略了。特别是,AbstractModel被忽略了,尽管它添加到了我的metadata.xml文件中:

<metadata>
  <attr path="/api/package[@name='com.kontakt.sdk.android.connection']/interface[@name='BeaconConnection.WriteBatchListener']/method[@name='onErrorOccured']" name="managedName">onBatchErrorOccured</attr>
  <attr path="/api/package[@name='com.kontakt.sdk.android.connection']/interface[@name='BeaconConnection.ConnectionListener']/method[@name='onErrorOccured']" name="managedName">onConnectionErrorOccured</attr>
  <attr path="/api/package[@name='com.kontakt.sdk.android.manager']/class" name="obfuscated">false</attr>
  <attr path="/api/package[@name='com.kontakt.sdk.android.model']/class[@name='AbstractModel']" name="obfuscated">false</attr>
</metadata>

由于没有生成该类,我收到了大约100个错误——没有警告,并且该文件不在generated/src文件夹下。有可能从bindingtool获得更详细的输出吗?

在对jar进行反编译之后,我注意到的唯一"奇怪"的事情是,它是为数不多的实现Parcelable的类之一。

abstract class AbstractModel implements Parcelable {
}

事实证明,它并没有被生成(或者至少在鹰眼视图中隐藏),因为它需要可见性覆盖:

<attr path="/api/package[@name='com.kontakt.sdk.android.model']/class[@name='AbstractModel']" name="visibility">public</attr>

希望这对将来的人有所帮助。

最新更新