如何为具有许多依赖关系的AAR生成Xamarin绑定?

Cla*_*edi 13 android xamarin.android xamarin

我正在尝试为Android com.adobe.creativesdk.image库生成Xamarin绑定

问题是这个库包含20个引用,这些引用肯定包含更多.我必须浏览整个树并提取所有引用以将它们添加到绑定项目中.

肯定必须有一个更简单的方法来做到这一点.有人告诉我,我可以使用Android Studio创建一个包含所有引用的包AAR,但我不确定要使其工作的步骤.一些参考文献也是AAR.

你能否请我通过正确的方法让这个绑定工作?

小智 5

绑定库总是有自己的警告,但是我将做一些概括来帮助您保持组织。

  1. 检查所涉及的依赖项,如果其中任何一个已经在Nuget USE THOSE上。诸如Android支持库,Google Play API,IBM SDK等之类的东西。它们大多数已经具有绑定并且在Nuget中。

  2. 不要忘记对照Nuget中的依赖项版本号进行检查。也许您的.aar库实际上比nuget上的绑定更新。

  3. 单独的大图书馆。在Nuget中找到相对较大的其余依赖项,然后为每个依赖项创建单独的Android绑定库项目。通常,绑定API会与大型库分离为依赖项,因此为它们创建单独的项目(然后将项目引用添加到您的最终库中)要容易得多(也更干净IMO)。

  4. 分离您jarsaars。通常,您的.aar文件是大文件,它们无论如何都会获得自己的绑定并循环到#3中,但是jar依赖项应该使用ReferenceJarBuild Actions。

  5. 玩你的MetaData.xml。这可能需要很长时间,但是绑定API并不完美。使用MetaData和其他文件将其清理干净。

其他一些可能会有所帮助的事情:


Joa*_*und 2

我遇到了同样的问题,最终通过简单地添加依赖项解决了它。许多可以通过 NuGet 包添加(右键单击 BindingProject 并单击添加 nuget 包...),最常见的如 play 服务、gson okhttp3 等可以在这里找到。如果您像我一样有一些不常见的依赖项,您可能需要将它们添加为绑定项目本身。

我读到您可以直接将 aar/jar 依赖项添加到绑定项目中,并将构建操作设置为referenceJar或embeddedReferenceJar,但这对我来说不起作用。我对xamarin相对较新,所以我不确定它是否只是不符合其预期的使用方式,或者是否是因为它们由于执行错误而无法自动绑定(在元文件中出现一些错误和警告,我需要在元文件中修复)我后来将依赖项 jar/aar 添加到了自己的绑定项目中)。

无论如何,我让它工作的方法是向解决方案添加一个新的绑定项目,其中我添加了依赖项 jar/aar,然后构建它并在图元文件中添加所需的行/节点以使其编译。然后我只是在我的实际绑定项目中添加了“依赖关系绑定”项目作为参考。

这感觉更像是一种解决方法,而不是实际的解决方案,但至少我让它工作了,所以希望它可以帮助你。