添加本地.aar文件到摇篮建立使用“flatDirs”不工作添加本地.aar文件到摇篮建立使用“fl

2019-05-09 07:03发布

我知道这个问题的: 添加本地文件.aar我gradle这个建造 ,但解决方案并不为我工作。

我尝试添加这种说法对我的最高级别build.gradle文件:

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

我也把slidingmenu.aar文件到/libs ,并在引用它dependencies部分: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar' ,但它并没有在所有的工作。

我试图compile files('libs/slidingmenu.aar')以及,但没有运气。

我在想什么? 有任何想法吗?

PS过Android Studio 0.8.2

Answer 1:

在约西亚的答案的基础上,这里就是我得到了它的工作。

在他的指令(下编辑)( 文件- >新建- >新建模块- >导入.JAR / .AAR)并导入.AAR。

然后在你的项目的build.gradle(不是顶级,下设“应用”之一)添加以下(相关内容部分):

dependencies {
    compile project(':Name-Of-Your-Project')
}

注意名称-OF-你的项目应符合您所导入的AAR文件后(在同一水平作为加入该文件夹的名称app/.idea下的最顶层文件夹)。 或者换一种说法...

MyApplication
  .idea
  app
  build.gradle (here's where to add compile project(':ProjectName') to dependency section)
  ProjectName (added automatically after importing, matching the name of your aar file)
  build
  gradle
  etc

这为我工作运行Android 0.8.0工作室。 不要忘记的gradle同步(使用工具栏按钮或在文件- >同步 ),你这样做了。

(感谢约西亚你为我在正确的方向前进)

(注:在此之前,我试图将它添加到libs文件夹,试图操纵顶级build.gradle和应用级build.gradle ,但没有奏效我AARS文件-罐子的将正常工作,但不AAR的文件)



Answer 2:

更新 :由于@ amram99提到的, 问题已得到修复由于Android工作室V1.3的发布。

经过测试,与下面的规格验证

  • Android的工作室V1.3
  • gradle这个插件V1.2.3
  • 摇篮V2.4

什么工作现在

  • 现在,您可以通过文件>新建>新建模块> Android Studio中导入 V1.3 .JAR / .AAR封装选项导入本地AAR文件

  • 然而,由于这是基于脚本的gradle的回答以下持有真实有效不论Android Studio中的变化。


老答:在最近更新的人机器人通过Android Studio的添加新的模块菜单选项打破了当地的AAR文件中包含的。 检查问题这里列出。 无论任何进入和退出IDE的功能列表中,当涉及到与当地的AAR文件的工作方法如下工作(今天测试了它):

放入libs目录(如果需要创建它),那么,在你的build.gradle中添加以下代码AAR文件:

dependencies {
   compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
 }
repositories{
      flatDir{
              dirs 'libs'
       }
 }


Answer 3:

编辑:正确的方法(目前)使用本地文件AAR作为构建依赖是使用模块导入向导(文件|新建模块|进口.JAR或.AAR包),它会自动添加.aar作为库模块在您的项目。

老回答

试试这个:

allprojects {
  repositories {
    jcenter()
    flatDir {
      dirs 'libs'
    }
  }
}

...

compile(name:'slidingmenu', ext:'aar')


Answer 4:

我在Android 2.1工作室这个工作。 我有一种叫做跨多个项目共享“Native_Ads”模块。

首先,我在Native_ads模块名称为“AARS”创建一个目录,然后把AAR文件在那里。

目录结构:

libs/
aars/    <-- newly created
src/
build.gradle
etc

然后,其他的变化:

顶级摇篮文件:

allprojects {
    repositories {
        jcenter()
        // For module with aar file in it
        flatDir {
            dirs project(':Native_Ads').file('aars')
        }
    }
}

应用模块的build.gradle文件: - 无变化

Settings.gradle文件(包括模块):

include ':app'
include 'Native_Ads'
project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads')

对于Native_Ads模块摇篮文件:

repositories {
    jcenter()
    flatDir {
        dirs 'aars'
    }
}
dependencies {
    compile(name:'aar_file_name_without_aar_extension', ext:'aar')
}

而已。 清理并生成。



Answer 5:

现在最简单的方法是将其添加为一个模块

这将创建一个包含AAR文件一个新的模块,所以你只需要包括模块作为一个依赖事后



Answer 6:

你可以这样来做。 它需要在Maven格式去:

repositories {
  maven { url uri('folderName')}
}

然后你需要AAR在一组ID为“com.example”的文件夹结构去:

folderName/
  com/
    example/
       verion/
          myaar-version.aar

然后引用作为依赖性:

compile 'com.example:myaar:version@aar'

其中version是您的AAR文件的版本(即3.0等)



Answer 7:

这是我的结构,以及如何解决这个问题:

MyProject的/应用/库/ mylib中,1.0.0.aar

MyProject的/应用/ myModulesFolder / myLibXYZ

的build.gradle

项目/应用/ myModulesFolder / myLibXYZ

我已经把这个:

repositories {
   flatDir {
    dirs 'libs', '../../libs'
  }
}
compile (name: 'mylib-1.0.0', ext: 'aar')

完成并工作正常,我的子模块XYZ依赖于从主模块somelibrary。



Answer 8:

对于任何人谁都有这个问题,因为Android Studio中1.4的,我把它通过创建包含两件事情该项目中的模块工作。

  1. 具有以下内容的build.gradle:

    configurations.create("default")

    artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))

  2. AAR的文件(在本实施例中的Facebook-Android的SDK-4.7.0.aar')

然后,包括新的库作为模块依赖。 现在,您可以使用内置AAR不包括在项目中的来源。

感谢Facebook的这个黑客。 我找到了解决办法,同时集成了Android SDK到项目。



Answer 9:

在我的情况下上述答案的没有工作! 因为我有不同的productFlavors只是增加repositories{ flatDir{ dirs 'libs' } }

不工作! 我结束了指定目录的确切位置:

repositories{
flatDir{
    dirs 'src/main/libs'
}

}

猜应该引进这样的flatDirs时,有在不同的build.gradle productFlavors



Answer 10:

就我而言,我只是把库的AAR文件,并添加

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

在的build.gradle和它的作品。 我认为这是默认生成的依赖类似:

implementation fileTree(dir: 'libs', include: ['*.jar'])



文章来源: Adding local .aar files to Gradle build using “flatDirs” is not working