将现有 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
根据类型交换aar
和jar
的位置。包名称、组 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 模块