【问题标题】:Gradle dependencies in XamarinXamarin 中的 Gradle 依赖项
【发布时间】:2016-06-27 08:49:15
【问题描述】:

是否可以将 Gradle 的依赖项集成到 Xamarin 项目中?

A 有一些库,我需要安装它们,它们看起来像这样

dependencies {
compile (name: '<aar fileName>', ext:'aar')
compile 'com.koushikdutta.async:androidasync:2.1.6'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0' compile
}

我可以以某种方式将它们暴露给 Xamarin 吗?

【问题讨论】:

    标签: xamarin gradle xamarin.android


    【解决方案1】:

    Xamarin.Android 中没有 gradle

    要获取您可以使用的外部库或 Android 库:

    1. NuGet

    2. Xamarin Components

    3. Do your own Java Library binding

    4. 将代码直接从 Java 转换为 C#。

    5. Visual Studio 有一个 plugin(几个月前测试过,但对我没有用),理论上它从 gradle 中获取依赖项并尝试将它们转换为 C# 绑定。

    这里有一个非常棒的 github 页面,里面有很棒的 Xamarin 插件。

    【讨论】:

    • 如果您想使用 Gradle Java 依赖项,我强烈建议您使用适用于 Visual Studio 的 Gradle 插件。让这一切正常工作可能会很痛苦,但它会起作用。如果遇到问题,您可以指定忽略,以便只从 java 库中公开您需要的内容。我遇到了库不能很好地转换为 C# 的问题,我必须指定忽略以使其正常工作
    • @AndrewHoefling 该插件正在维护中,它似乎按照您所说的那样工作,这里是github repo。
    • @AndrewHoefling 我遇到了库无法转换为 c# 的相同问题。您如何处理这个问题,请详细说明?
    • @Aniket 这可能是由 100 种不同的事情引起的。我将首先查看有关 Java 绑定如何工作的官方 Xamarin 文档。他们有一个troubleshooting guide 应该会有所帮助。我提到的扩展只是 Xamarin 官方支持的包装。我的猜测是当它尝试将 java 移植到 C# 时存在名称冲突。我会首先只暴露你需要的对象。
    【解决方案2】:

    使用 Gradle 在 Visual Studio 中构建您的 Android 应用程序。

    使用最新的 Visual Studio 版本,如果您查看文件->新建项目模板部分中的跨平台 C++ 部分,您将看到如下图所示的各种模板。请注意已引入的两个新 Gradle 模板。

    来源: https://blogs.msdn.microsoft.com/vcblog/2016/06/12/build-your-android-applications-in-visual-studio-using-gradle/

    【讨论】:

    • 这将适用于使用 Android NDK 的 C++ 项目,但 OP 询问的是 Xamarin (C#)。
    • 它适用于属于 Xamarin 应用程序的 Gradle 项目。将生成的 AAR 与 Android 绑定库绑定,仅此而已。
    【解决方案3】:

    您可以尝试Java library binding,它基本上是创建一个 C# 绑定 Java 库来使用您的 Xamarin 项目中的库。

    【讨论】:

      【解决方案4】:

      通常您不会使用 gradle 来构建您的 Xamarin 项目。因此,您需要通过 NuGet 包集成/引用这些库。 AppCompat 和 Support Design 均以 NuGet 包的形式提供。另一个,如果它按照我认为的那样做,就不需要了,因为 c# 内置在异步支持中。

      【讨论】:

      • 谢谢!但是还有一些,我不确定,它们存在于 Xamarin 中,因为它们来自 3rd 方框架提供商。有没有办法将这些库集成到 xamarin 项目中?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多