当前位置: 首页 > 知识库问答 >
问题:

如何使用Gradle for Android手动包含外部aar包

梁盛
2023-03-14

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

但我的问题是,我想手动将依赖项作为aar文件包提供,如果我想要一个JAR,那么我似乎不知道如何正确地将其包含到我的项目中。我试图使用编译配置,但似乎不起作用。在编译过程中,我一直无法找到符号,这告诉我类。aar包中的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提出的语法也更简单

共有3个答案

伍宝
2023-03-14

您可以从存储库引用aar文件。maven是一个选择,但有一个更简单的解决方案:将aar文件放在libs目录中,并添加一个目录存储库。

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

然后在依赖项部分引用库:

  dependencies {
        implementation 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

你可以查看民安的博客帖子了解更多信息。

阳宾实
2023-03-14
  1. 右键单击您的项目并选择打开模块设置。

编辑:屏幕截图6中的模块依赖已在Android Studio 4.1中删除。作为一种选择,将模块依赖关系添加到build.gradle.

dependencies {
    implementation project(':your_module')
}

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

万俟穆冉
2023-03-14

请按照以下步骤操作(我已经在Android Studio 2.2上测试过)

假设您将aar文件保存在libs文件夹中(假设文件名为cards.aar

然后在appbuild中。gradle指定以下内容,然后单击“将项目与gradle文件同步”。开放项目级构建。gradle和addflatDir{dirs'libs'}如下所示

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

现在打开应用程序级构建。grdle文件并添加。aar文件

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

如果一切顺利,你会看到图书馆入口是在构建-

还请注意,如果您正在导入一个。来自另一个项目的aar文件,其中包含依赖项,您需要在构建中包含这些依赖项。格雷德尔也是。

 类似资料:
  • 我试图通过在AOSP源代码中构建一个模块来构建基于java的android应用程序。我的应用程序使用android.support.constraint.ConstraintLayout。但是,我没有找到在我的中包含约束布局依赖项的直接方法。 我已经把我的项目放在下,并尝试了这个 : 但是,这会带来构建错误: 忍者:错误:“out/target/common/obj/JAVA_LIBRARIES/

  • 问题内容: 我正在使用LiteIDE for Go。我的Go文件位于此处: 当我使用以下文件添加文件时: 导入“ ../Helper” 我收到此错误: 无法加载软件包:/Users/username/go/src/src/projectA/main.go:4:8:非本地软件包中的本地导入“ ../Helper” 有什么想法我做错了吗? 问题答案: 您通过导入路径导入软件包。对于位于中的packag

  • 问题内容: 我想知道如何在react项目中包含一个外部javascript库。例如,我想导入jspdf库:https : //github.com/MrRio/jsPDF/blob/master/jspdf.js并在我的reactjs应用程序中使用它。 到目前为止,我尝试使用如下需求: 我有以下错误: TypeError:pdfConverter.jsPDF不是一个函数 。 为了使其正常工作,我做

  • 问题内容: 我已经完成了连接数据库(MySQL)的项目。现在,我要将项目导出为jar。但是我不知道如何包括其外部依赖项?在Eclipse中有什么方法可以做到这一点,还是应该为此使用任何脚本? 问题答案: 当你将项目导出为“可运行的jar”(在项目->导出->可运行的jar上单击鼠标右键)时,可以选择将所有依赖项打包到生成的jar中。它还有两种其他方式(请参见屏幕截图)来导出库,请在决定使用哪种打包

  • 我写了一些库,其中有一部分UI。此外,这个库使用另一个库。我想提供发行版来在任何应用程序中使用这部分UI。 我得库有下一个依赖项: /home/user/projects/mainapp/app/build/intermediates/explodede-aar/com.my.sdk/sdk/0.0.1/res/values/values.xml:78:21-29:找不到与给定名称匹配的资源:at

  • 我使用的是Android Studio1.4