2016-05-04 76 views
9

我试图为Android生成一个Xamarin Binding com.adobe.creativesdk.image如何为许多依赖关系的AAR生成Xamarin绑定?

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

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

请问您能否将我置于正确的路径以使此绑定工作?

+0

你尝试过这样的 http://stackoverflow.com/questions/24309950/create-aar-file-in-android-studio – Ankur1994a

+0

Ankur1994a:恐怕看不出有什么帮助。你能解释一下吗? –

回答

1

我有同样的问题,我终于通过简单地添加依赖关系来解决它。许多可以通过NuGet包添加(右键单击绑定项目并单击添加nuget包...),最常见的像play服务,gson okhttp3等可以在这里找到。如果你像我一样拥有一些不常见的依赖关系,那么你可能需要将它们自己添加为绑定项目。

我读到你可以直接向绑定项目添加aar/jar依赖项,并将生成操作设置为referenceJar或embeddedReferenceJar,但这对我无效。我对xamarin相对来说比较新,所以我不确定它是不是它打算被使用的方式,或者是因为它们不能被执行错误自动绑定(有一些错误和警告,我需要在元文件中修复我后来将依赖jar/aar添加到它自己的bindingsproject中)。

无论如何,我得到它的方式是通过向解决方案添加一个新的绑定项目,其中我添加了依赖项jar/aar,然后构建它并在元文件中添加所需的行/节点,以使其编译。然后我简单地在我的实际绑定项目中添加“依赖绑定”项目作为参考。

这种感觉更像是一种解决方案而不是实际的解决方案,但至少我已经将其运用了,所以希望它能帮助您。

1

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

  1. 检查涉及的依赖关系,如果它们中的任何一个已经在Nuget上使用这些。像Android支持库,Google Play API,IBM SDK等等。它们中的大多数已经具有绑定并且在Nuget中。

  2. 不要忘记检查你的依赖版本号与Nuget中的版本号。也许你的.aar lib实际上比Nuget上的Binding更新。

  3. 独立的大型图书馆。找到不在Nuget中的相对较大的其他依赖项,然后为它们中的每一个创建单独的Android绑定库项目。通常绑定API会以大型库作为依赖关系而分崩离析,因此为它们创建单独的项目(然后将项目引用添加到最终库)要容易得多(并且更清洁的IMO)。

  4. 将您的jarsaars分开。通常你的.aar文件是无论如何都得到自己的绑定并循环到#3的大文件,但jar依赖项应使用ReferenceJar构建操作。

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

一些其他的东西,可能会帮助: