我正在尝试为Android com.adobe.creativesdk.image库生成Xamarin绑定
问题是这个库包含20个引用,这些引用肯定包含更多。我必须浏览整个树并提取所有引用以将它们添加到绑定项目中。
当然,必须有一种更简单的方法来做到这一点。有人告诉我,我可以使用Android Studio创建一个包含所有引用的包AAR,但我不确定要使其工作的步骤。一些参考文献也是AAR。
请问您能否使我正确地使用此绑定工作?
答案 0 :(得分:4)
绑定库总是有自己的注意事项,但我会做一些概括来帮助你保持井井有条。
检查所涉及的依赖关系,如果其中任何一个已经在Nuget USE THOSE上。诸如Android支持库,Google Play API,IBM SDK等等。大多数已经有绑定并且在Nuget中。
不要忘记检查您的依赖项版本号与Nuget中的版本号。也许你的.aar lib实际上比Nuget上的Binding更新。
分开大型图书馆。找到Nuget中不存在相对较大的其他依赖项,然后为每个依赖项创建单独的Android绑定库项目。通常,绑定API会因大型库作为依赖关系而分崩离析,因此为它们创建单独的项目(然后将项目引用添加到最终库)要容易得多(并且更清晰IMO)。
将jars
与aars
分开。通常,您的.aar
文件是最重要的文件,无论如何都会获得自己的绑定并循环到#3,但jar
依赖项应使用ReferenceJar
构建操作。
使用MetaData.xml
进行游戏。这可能需要很长时间,但Binding API并不完美。使用MetaData
和其他文件可以根据自己的喜好对其进行清理。
其他一些可能有用的事情:
.jar
和.aar
个文件进入你的Jars
文件夹,因为出于某种原因将它们添加到项目根目录中)MetaData.xml
文件的一些好方法)答案 1 :(得分:1)
我有同样的问题,我终于通过简单地添加依赖项来解决它。许多可以通过NuGet包添加(右键单击bindingproject并单击添加nuget包...),最常见的一些如play服务,gson okhttp3等可以在这里找到。如果你和我一样,有一些不常见的依赖项,你可能需要将它们作为绑定项目本身添加。
我读到你可以直接将bind / jar依赖项添加到bindingproject,并将build action设置为referenceJar或embeddedReferenceJar,但这对我不起作用。我是相对较新的xamarin所以我不确定它是不是它的意图使用的方式,或者是因为它们不能自动绑定由于执行错误(得到一些错误和警告,我需要修复元文件时我后来将依赖jar / aar添加到它自己的bindingsproject中。
无论如何,我让它工作的方式是在解决方案中添加一个新的bindingsproject,在其中我添加了依赖jar / aar然后构建它并在元文件中添加所需的行/节点以使其编译。然后我只是在我的实际bindingsproject中添加了“依赖绑定”项目作为参考。
这更像是一种解决方法,而不是一种实际解决方案,但至少我让它起作用,所以希望它可以帮助你。
答案 2 :(得分:0)
对于需要在aar / jar java依赖项周围创建包装器以使其与C#配合使用的任何人,请注意。 您最好通过绑定dll引用aar依赖关系,而不是尝试将其添加到同一绑定中,xamarin每次绑定不能使用多个aar。 用自己的aar / binding编写包装器,并让包装器绑定/ dll将依赖项也作为绑定/ dll引用。 另外-与使用jar文件相比,最好使用aar文件,这些天jar似乎已经过时了。