我一直在尝试新的android构建系统,我遇到了一个小问题。我已经编译了我自己的ActionBarSherlock的aar包,我称之为' ActionBarSherlock .aar'。我想做的是用这个aar来构建我最终的APK。如果我包括整个ActionBarSherlock库作为一个android-library模块到我的主项目使用编译项目(':ActionBarSherlock '),我能够成功地构建没有任何问题。

但我的问题是,我想手动提供一个aar文件包的依赖,如果我将JAR,那么我似乎不知道如何正确地将它包含到我的项目中。我尝试使用编译配置,但这似乎不工作。在编译期间,我一直无法找到符号,这告诉我aar包中的classes.jar没有包含在类路径中。

有人知道手动包含aar包作为文件的语法吗?

build.gradle

buildscript {

 repositories {
     mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
  }
}
apply plugin: 'android'

repositories {
   mavenCentral()
}
dependencies {
    compile files('libs/actionbarsherlock.aar')
}

android {
    compileSdkVersion 15
    buildToolsVersion "17.0"
}

编辑:所以答案是目前不支持,如果你想跟踪它,这是一个问题。

编辑:目前这仍然不直接支持,最好的替代方案似乎是@RanWakshlak提出的解决方案

编辑:使用@VipulShah提出的语法也更简单


当前回答

有两种方法:

第一种方法

打开Android Studio,通过文件->新建->新建模块导航到创建新模块窗口

选择Import . jar /。AAR Package项并单击Next按钮 在构建中添加依赖项。属于你的app模块的Gradle文件。

    dependencies {
        ...
        implementation project(path: ':your aar lib name')
    }

这是所有。

第二种方法

在libs目录下创建一个文件夹,例如aars。 把你的aar lib放到aars文件夹中。 添加代码片段

repositories {
    flatDir {
        dirs 'libs/aars'
    }
}

进入你的构建。Gradle文件属于app模块。

在构建中添加依赖项。属于你的app模块的Gradle文件。

dependencies {
    ...
    implementation (name:'your aar lib name', ext:'aar')
}

这是所有。

If you can read Chinese, you can check the blog. What are AAR files and how can they be used in Android development

其他回答

你可以这样做:

将您的本地库(扩展名:.jar, .aar,…)放入“libs”文件夹(如果您愿意,也可以使用其他文件夹)。 在构建。Gradle(应用级别),将这一行添加到依赖项中 实现文件树(包括:['*.jar', '*.jar', '*.jar'。Aar '], dir: 'libs')

以下方法适用于Android studio v0.8.x:

将aar文件保存在app模块的libs文件夹下(例如:<project>/<app>/libs/myaar.aar) 添加下面的构建。Gradle的“app”模块文件夹(不是你的项目根build.gradle)。注意编译行中的名称,它是myaar@aar而不是myaar.aar。 依赖关系{ 编译“package.name.of.your.aar: myaar@aar” } 存储库{ flatDir { dirs“填词” } } 点击工具-> Android ->同步项目与Gradle文件

请按照下面的步骤让它工作(我测试到Android Studio 2.2)。

假设你在libs文件夹中有一个。aar文件(例如cards.aar)。

然后在应用程序构建中。指定下面的gradle文件,然后点击同步项目。

开放项目级构建。gradle和添加flatDir {dirs("libs")}如下所示:

allprojects {
    repositories {
        jcenter()

        flatDir {
            dirs("libs")
        }
    }
}

开放应用程序级别构建。Gradle文件和添加。aar文件:

dependencies {
    implementation(name:'cards', ext:'aar')
}

如果你正在使用Kotlin并且有一个build.gradle.kts文件:

dependencies {
    implementation(name = "cards", ext = "aar")
}

如果一切顺利,您将在build -> explosion -aar中看到库条目。

还要注意,如果您从另一个具有依赖关系的项目导入.aar文件,则需要在构建中包含这些依赖关系。gradle。

我在这里尝试了所有的解决方案,但没有一个是有效的,然后我意识到我犯了一个错误,我把。aar放在错误的文件夹中,如下所示,我认为我应该放在根文件夹中,所以我在那里创建了一个libs文件夹(图片中的1),但在应用程序文件夹中,已经有一个libs,你应该放入第二个libs,希望这有助于那些有同样问题的人:

右键单击你的项目,选择“打开模块设置”。

点击窗口左上角的“+”按钮可以添加一个新的模块。

选择“导入。jar或。aar包”,然后单击“下一步”按钮。

使用“文件名”字段旁边的省略号按钮“…”查找AAR文件。

保持应用程序的模块被选中,并单击Dependencies窗格将新模块添加为依赖项。

使用依赖项屏幕上的“+”按钮并选择“模块依赖项”。

选择模块并单击“确定”。

编辑:截图6中的模块依赖已在Android Studio 4.1中删除。作为替代方案,将模块依赖项添加到build.gradle。

dependencies {
    implementation project(':your_module')
}

编辑:在Android Studio 4.2中,用户界面和工作流程有了很大的改变。添加依赖项的过程现在在官方文档中有很好的解释:使用项目结构对话框添加依赖项