Tag: aar

Xamarin.Android绑定到具有依赖项的第三方SDK

我正在使用VS2015 Update3与当前/最新的Xamarin,我正在尝试创建一个绑定库来包装用Java编写的第三方SDK。 我有一个C#/ .Net背景,到目前为止几乎没有Java经验。 此SDK依赖于3个其他项目,可以作为AAR或通过NuGet获得。 我能够为父AAR创建一个绑定库,使用一些MetaData.xml tweato调整参数类型并返回类型并更正类访问器以满足其抽象基类,所有这些都最初阻止了生成的C#.Net Android来自建筑物的绑定库。 现在父绑定程序集构建,但无法执行,因为它需要其他3个AAR依赖项。 需要的依赖关系(“#”是下面post中提到的每个的别名): “2” – > com.android.support:support-v4:25.1.1 “3” – > com.google.android.gms:play-services-location:10.2.0 “4” – > com.google.android.gms:play-services-gcm:10.2.0 在这种情况下,如果我需要创建一个绑定dll来包装依赖于3个其他AAR的父AAR: 我应该(A)创建4个绑定程序集 – 父绑定程序集Bind_AAR_1.dll,它依赖于Bind_AAR_2.dll,Bind_AAR_3.dll和Bind_AAR_4.dll? 或者,我是否应该(2)深入研究2个,3个和4个AAR文件并从每个文件中获取JAR文件,并使用“EmbeddedJar”(或其他属性/设置)将它们直接包含在Jars文件夹中的Bind_AAR_1.dll中? 或者,看到2,3和4实际上是通过NuGet提供的,我应该使用NuGet将它们引用到Bind_AAR_1项目吗? 如果我使用NuGet引用/包含它们,那么AAR 1中的Javacode是否能够看到AAR 2,3和4中的代码? 我已经尝试了各种方法(A),(B)和(C)的变化,但没有运气,或导致更多工作的结果,这让我想知道什么是最好/正确的方法。 在相关主题上,最佳做法是使用Metadata.xml文件从生成的生成的包装器API中显式删除您未直接计划在Xamarin项目中使用的所有内容(类等)吗? 似乎限制接口可能是好的,并且可能还减少绑定dll的构建大小(以及可能的构建时间)。 任何帮助,将不胜感激! 柯蒂斯 ================================================== ===================== 4/11/2017 – 更新 非常高兴收到@_JonDouglas之类的投入! 但是……仍然无法使这个SDK工作。 我已经尝试了这些方法A,B和C中的每一个,并且已经能够构建我的绑定项目(通过转换/ MetaData.xml完成​​操作)。 第三方SDK被设计/记录为Java解决方案中的组件的一部分。 根据供应商的说明文档,此解决方案将在其.gradle文件中添加3个依赖项,从而在整个Java解决方案中提供对这些项的引用。 我没有Java历史,所以在这里展开它。 实际上,当我将SDK(单独使用或使用3种方法中的任何一种)与Visual Studio包装到Xamarin Android绑定程序集中时,在运行时SDK会遇到ClassNotFoundexception(由“未找到Google Play”certificate)日志)。 从所需的Java依赖项中使用的类是以后期绑定的方式使用类名的名称字符串创建的,如下所示: try { […]