将现有 JAR 或 AAR 作为新项目模块导入

Posted

技术标签:

【中文标题】将现有 JAR 或 AAR 作为新项目模块导入【英文标题】:importing an existing JAR or AAR as new project module 【发布时间】:2021-06-10 09:22:52 【问题描述】:

如何在新的Android Studio 北极狐中导入JAR 或AAR 包作为新项目模块| 2020.3.1 金丝雀 9 ?

请告诉我。

【问题讨论】:

我有同样的问题我不知道如何解决这个问题 我也有同样的问题。我有 Beta 2 版本 你试过programmersought.com/article/36706527385 我在下面提供了一个解决方案。如果有帮助请点赞! 这对我有用!点击链接***.com/a/64819440/11973801 【参考方案1】:

这适用于 android Studio Arctic Fox Beta 02

第 1 步:导航到 文件 -> 项目结构。您也可以按 Ctrl+Alt+Shift+S

您将看到一个如下所示的窗口。

第 2 步:点击应用模块,如图所示

第 3 步:点击图片中标记的 + 图标

第 4 步:您将看到选择 jar/aar 依赖项的选项。点击它

您将看到另一个像上面一样的窗口,要求您指定路径。指定保存 aar/jar 文件的路径并点击 Ok。

应该可以的

【讨论】:

在步骤 1 中仍然无法从资源管理器中选择 aar 文件。 @AbhayKoradiya 在该字段中手动复制和粘贴路径怎么样? 这样添加后,需要手动将新模块添加到settings.gradle中,像这样:include ':modulename'【参考方案2】:

在我看来,最好的方法是将 jar/aar 部署到本地 maven 存储库。如果您安装 maven,则可以在 gradle 中使用 mavenLocal() 存储库,并像使用任何其他 repo 一样从那里读取,无论您使用的是什么 IDE。所有版本的 Android Studio 都可以使用,所有版本的 IntelliJ 都可以使用,VSCode 可以使用,命令行可以使用等等。另一个优点是,您可以像使用其他所有版本一样交换库的版本,只需更改 gradle 中的版本(在部署新版本之后),它将适用于您的所有项目。手动将 jars/aars 放入项目中只是一种不好的做法,而且已经过时了。

安装 maven 后,在终端中输入:

mvn install:install-file -Dfile=d:\mylibrary-version.aar -DgroupId=com.example -DartifactId=mylibrary -Dversion=version -Dpackaging=aar

根据类型交换aarjar 的位置。包名称、组 ID 和库名称由您决定,任何事情都可以。如果你没有版本,我会使用库的包和名称,以及版本 1.0。

这是一个示例链接。是旧的,但过程是一样的。 mvn install,然后从mavenLocal()消费。

【讨论】:

这不是问题。需要像以前的版本一样从 UI 执行此操作【参考方案3】:

可以直接使用JAR/ARR文件路径实现。

implementation files('/File Path/file.aar')

【讨论】:

这不是问题。需要像以前的版本一样从 UI 执行此操作【参考方案4】:

第 1 步: 将您的 aar 文件放入 libs 文件夹。我们以文件名为supernover.aar为例。

第 2 步:将以下代码放入您的项目级别

build.gradle  file,
    allprojects 
   repositories 
      jcenter()
      flatDir 
        dirs 'libs'
      
   

并在应用级模块中编写以下代码,

dependencies 
    Implementation(name:'supernover', ext:'aar')

第 3 步:然后点击同步项目与 Gradle 文件。

如果一切正常,那么您将看到库条目是在构建 ->intermediates -> exploded-aar 中创建的。

【讨论】:

【参考方案5】:

对于仍在寻找解决方案的任何人。

    创建一个新的 android 应用程序项目。 将新项目转换为独立的库模块。 将maven-publish插件添加到模块级build.gradle 将您的项目连接到您的 Github 存储库(或创建一个新存储库)。 在模块级build.gradle,实现Github Packages认证流程。我以“zuko”为例 - 用您的 Github 登录名替换该名称的每个实例。
android 
...
  publishing 
       repositories 
           maven 
               name = "GitHubPackages"
               url = uri("https://maven.pkg.github.com/zuko/[git-repository]")
               credentials 
                   username = 'zuko'
                   password = 'token' // this is a Git Personal Access Token
               
           
       

       publications 
           release(MavenPublication) 
               groupId 'com.zuko.libraries'
               artifactId 'choose-a-name'
               version '1.0.0'
               artifact("$buildDir/ogury-mediation-mopub-5.2.0.aar") 
              // you can actually put the artifact anywhere you want.
              // This is the location of where you place your .aar file
           
       
   
...

    如果一切都正确连接,请保存您的工作并运行任务:./gradlew publish。错误日志很简单,因此请按照说明和 Google 寻求更多帮助。

    要将成功发布的包安装到您想要的项目中,请对publishing.repositories 使用相同的身份验证过程,您不需要后半部分publishing.publications

    示例:implementation 'com.zuko.libraries:choose-a-name:1.0.0'

【讨论】:

【参考方案6】:

您可以在 buildscript 中配置一个存储库,在本地目录中查找依赖项

使用它在您的应用模块的build.gradle 中将本地目录注册为存储库,其中libs 是应用模块下的目录 (<project>/app/libs/)

buildscript 
    repositories 
        flatDir  dirs 'libs' 
    

然后从您之前注册的本地文件树中声明您的依赖项

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

这将包括 libs 目录下的所有 jar/aar 工件,以包含在您的模块的依赖项中。

PS:本地 jar/aar 工件将期望任何传递依赖项都在类路径上,除非它们是 fat-jars(将所有传递依赖项打包到工件中),因此需要将它们显式添加为依赖项。

【讨论】:

这不是问题。需要像以前的版本一样从 UI 中完成。 因为它是金丝雀版本(不稳定),所以如果 GUI 损坏,您可以在其跟踪器上提交错误,因此功能可能无法始终按预期工作。同时,如果有人因为金丝雀版本无法正常工作而被阻止,这可能会有所帮助 嗨 @rahul.taicho ***.com/users/3622901/rahul-taicho 请您就以下问题提供指导:***.com/questions/67985653/…

以上是关于将现有 JAR 或 AAR 作为新项目模块导入的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 4.2 上导入 .AAR 模块

如何将 .AAR 作为新模块包含在 android 项目中? [复制]

在 Flutter 项目中导入 AAR

Android Studio 打包 jar 及 aar 包

Android Studio 打包 jar 及 aar 包

Android Studio 打包 jar 及 aar 包