【问题标题】:How to add .aar dependency in library module?如何在库模块中添加 .aar 依赖项?
【发布时间】:2016-04-18 08:07:57
【问题描述】:

我有一个库模块的.aar 文件。
我想将它用作我其他项目的库模块中的库或依赖项。
我该怎么做?

我尝试了以下链接提供的选项:
http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/

仅当我在项目的应用程序模块中添加 .aar 引用时它才有效。但不能在库模块中工作。

谢谢。

【问题讨论】:

  • 请提供您的build.gradle
  • allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } 依赖项 { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android .support:appcompat-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.0.1' compile(name:'mylibmodule', ext:'aar') }
  • @Swati 检查上面的链接。

标签: android android-studio gradle android-gradle-plugin build.gradle


【解决方案1】:

按照此设置,您将能够将.aar 依赖项添加到库模块

build.gradle(项目:....)

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        flatDir {
            dirs 'libs'
            dirs project(':library_module').file('libs')
        }
    }
}

build.gradle(模块:app)

dependencies {
    ...
    compile project(':library_module')
}

build.gradle(模块:library_module)

dependencies {
    ...
    compile(name:'aar_file_name', ext:'aar')
}

settings.gradle(项目设置)

include ':app', ':library_module'

【讨论】:

  • dirs project(':library_module').file('libs') 完成这项工作
  • @Android,很抱歉,因为我回答了很长时间,所以我不确定是否有变化。如果你找到了解决它的方法,希望你能纠正我。非常感谢
  • 没有问题@PhanVanLinh
  • 它救了我的命
  • 经过一番努力,这个答案帮助我解决了这个问题。谢谢潘文林。
【解决方案2】:

在您需要 aar 文件的所有模块(库或应用程序)中,您必须将其添加到您的 build.gradle 存储库中:

repositories {
    flatDir {
        dirs 'libs'
    }
}

并添加依赖:

dependencies {
   compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
 }

您可以使用顶级文件添加存储库,但您不能在顶级文件中添加依赖项。
注意你在模块中使用的 libs 文件夹的相对路径。

【讨论】:

  • 我想要有资源的图书馆。
  • 什么意思? aar 有资源
  • @Swati 您必须在模块中添加依赖项,而不是在顶级文件中。阅读您的评论,您将依赖项添加到错误的文件中
【解决方案3】:

抱歉流程涉及 10 个步骤,但这些步骤超级简单易行。

1-新建->模块

2-选择导入.jar/aar包

3-从位置选择您的 .aar 文件

4-我们可以看到模块已添加但尚未配置应用模块。

5-转到项目结构

6-目前的项目结构是这样的

7- 转到应用模块并按“+”图标

8-选择第三个选项模块依赖

9-选择新添加的.arr模块

10-你可以看到app模块附带的新模块。现在点击应用。

你可以看到我们很高兴。

【讨论】:

  • 我错过了北极狐的这个步骤,如果你找到了,请告诉我:(
【解决方案4】:

我的做法与其他人在这里发布的有点不同......

我的主要目标是创建一个库模块,其中包含我需要的所有 jar 和 aar。然后我的主项目将依赖于这个库模块 - 我只希望主项目的 build.gradle 中的一行来链接这个依赖项。

  1. 在项目中添加一个新的库模块:File -> New -> New Module -> Android Library

  2. 在库模块中,打开 build.gradle 并添加:

// so that the library project can locate the aar in /libs
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation fileTree(include: ['*.aar'], dir: 'libs')
}

现在您可以将所有 jar 和 aar 弹出到库模块的 /libs 文件夹中。 奖励:无论库名称是什么,它都会自动发现

【讨论】:

  • 我正在尝试同样的事情,但这对我不起作用。它会查看 app/libs 目录
  • 我找不到这个问题的答案。就像这个一样,有数百个答案,但似乎没有一个对我有用。错误是Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting A AR.
【解决方案5】:
  1. 文件 -> 新模块 -> 导入 .JAR/.AAR
  2. 导入 .AAR 文件。
  3. 在库模块build.gradle中添加依赖 依赖项{编译项目(':Name-Of-Your-Module-aar')}

http://tools.android.com/tech-docs/new-build-system/tips#TOC-Handling-transitive-dependencies-for-local-artifacts-jars-and-aar-

【讨论】:

  • 我能够按照这些步骤解决我的问题。 settings.gradle 和 build.gradle 文件会自动更新,让我只执行第 3 步。谢谢!
猜你喜欢
  • 2017-07-09
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 2016-01-06
相关资源
最近更新 更多