如何在Android Studio中创建发布的android库包(aar)(不调试)


81

我已经构建了我的android库包(aar),构建结果在“ .. \ app \ build \ outputs \ aar”文件夹中创建。该文件夹中的文件称为“ app-debug.aar”,因此我猜它已在调试模式下构建,因此我想知道如何生成所构建的发行版,即“ app-release.aar”。我怎样才能做到这一点?此外,是否可以使用另一个自定义名称(例如,“ myCustomAppName-release.aar”而不是“ app-release.aar”)生成该生成。



2
您找到此问题的解决方案了吗?我有同样的问题,找不到任何帮助。
Belurd

Answers:


120

在Android Studio 1.2+中,有一个完整的gradle菜单列出了所有可用的gradle任务。

我在IDE右侧找到了启用了默认选项的此菜单。

gradle菜单默认在IDE的右侧...

右键单击所需的任务,然后单击“运行”。

右键单击您要单击“运行”的任务


1
这对我有用,但是我注意到,一旦我运行了user1624552在注释中建议的cmd线级命令,并在此处获得另一个答案,从标准“构建”菜单进行的构建也开始工作。如果没有运行命令行等级的人可以确认这种侧面gradle菜单方法也可以用,因为我注意到命令行在运行之前已经下载了看起来像新版本的gradle,这将很有用,我想知道是否也是必需的步骤。
米克

1
顺便说一句,找到这个做得很好!!!如果有来自Google的人正在研究,那么很高兴知道是否有计划链接/合理化/解释顶部的Build菜单,“新的” Gradle侧边菜单以及Build Variants视图等?
米克

是的,当然。正如其他答案所建议的那样,我也从命令行运行了gradle,直到找到该菜单为止。我不确定在使用侧面菜单之前是否需要先从命令行运行它。有趣的是,您从侧面gradle菜单运行的任何任务都将成为默认操作“运行”操作。因此,换句话说,绿色箭头图标和“运行”菜单指向最后运行的gradle任务。有用的:)
jiminikiz 2015年

只是一个问题,当您以发布模式导出aar文件时,它会否包含最新的proguard属性?
abh22ishek

1
是的,如果您运行assemble任务,它将应用您在项目中定义的任何progaurd规则。
jiminikiz 2015年


9

的问题已经可以通过执行来解决

./gradlew assembleRelease

从Android Studio的Gradle菜单中选择assembleRelease。但是,为了完整起见,对于Android Studio 1.5.1(可能还有旧版本),可以通过在Android Studio中选择Build->“ Build APK”来完成.aar的发行版本。似乎执行了assembleRelease。如果您的项目仅包含库项目,则不会要求任何签名信息。


8

1.在build.gradle的android {}标签中添加以下脚本以生成发布版本:

signingConfigs {
    testConfig{
        storeFile file("X:/XXXX/yourkeystore")
        storePassword "yourKeyPassword"
        keyAlias "yourAlias"
        keyPassword "yourAliasPassword"
    }
}

buildTypes{
    release {
        signingConfig  signingConfigs.testConfig
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

2.在命令行中运行命令“ gradle clean build”。


抱歉,我是Android开发的新手。严格签名Android库包(aar)以获得其发布输出是否必要?如何生成自己的密钥库?
拉夫2014年

在我的图书馆项目中,已经生成了\ build \ outputs \ aar:XX-debug.aar,XX-release.aar。以及为什么需要ned.arr文件?如果要使用库,只需在build.gradle中添加以下脚本即可:依赖项{compile project(':YourLibraryProject')}
codezjx 2014年

1
我想将来在我的android应用程序中使用此库。这是一个库,我想获取其发布输出,但我不明白为什么,但是我在库的“ \ app \ build \ outputs \ aar”文件夹中仅获取XX-debug.aar,而没有获取XX-release.aar。
拉夫2014年

5
在终端窗口中,一旦进入项目文件夹,我就执行了以下命令:“ ./ gradlew clean”和“ ./gradlew aR”,现在将“ XX-release.aar”生成为“ .. \ app \ build \ outputs \ aar”文件夹。如何在Android Studio中执行同样的操作?也就是说,告诉Android Studio也要组装Release。
拉尔夫2014年

1
通常,您需要做的就是在android studio中构建项目,但是我在几个应用程序中都遇到了同样的问题。因此,在终端中执行此操作是唯一的解决方案。
CodyMace,2015年

8

借助Android Studio 3.0,更容易生成aar文件。如图所示,从Gradle选项中检查该选项 在此处输入图片说明


在我的项目中,我看不到汇编发布选项。
Gyan Swaroop Awasthi

当我在项目中导入版本.aar lib时,出现类似“ AAPT:错误:属性...未找到”的错误@leeCoder
Shomu

4

您可以使用命令行

./gradlew <moduleName>:assemble

./gradlew <moduleName>:assemble<build_variant>
//for example
./gradlew <moduleName>:assembleRelease

//or
./gradlew <moduleName>:bundle<build_variant>Aar
//for example
./gradlew <moduleName>:bundleReleaseAar
//output is located
<project_path>/build/outputs/aar/<module_name>-<build_variant>.aar

或者,您可以使用AndroidStudio UI

View -> Tool Windows -> Gradle
<module_name> -> Tasks -> build or others -> assembleRelease


./gradlew <moduleName>:assemble<build_variant>和 之间有什么区别./gradlew <moduleName>:bundle<build_variant>Aar
rupesh

3

将项目设置为Android库
build.gradle文件中: plugin: 'com.android.library'
您可以在以下位置build/outputs/aar/[your module].
看到输出:另请参见此链接


3

再有两部分的问题,没有人回答第二部分...

对于子孙后代,这里有简单的答案:

第1部分如何仅创建发行版*release.aar

在android studio中运行terminal(或在项目文件夹中的任何终端)。

./gradlew assembleRelease

您无需为此类任务签名配置。

第2部分如何将输出库重命名为AnotherLibraryName-release.aar

添加到您的模块gradle.build

android{
    project.archivesBaseName = "AnotherLibraryName"
}

0

对我而言,只需修复库中的布局错误,该错误不会产生编译错误(缺少androidx插件)即可将其修复并<lib>-release.aar出现在<lib>-debug.aarinbuild/outputs/aar/文件夹旁边。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.