【问题标题】:How to create a release android library package (aar) in Android Studio (not debug)如何在 Android Studio 中创建发布 android 库包(aar)(非调试)
【发布时间】:2015-02-23 02:59:04
【问题描述】:

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

【问题讨论】:

标签: android android-studio android-library


【解决方案1】:

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) 才能获得其发布输出?如何生成自己的密钥库?
  • 在我的库项目中,\build\outputs\aar 已经生成:XX-debug.aar, XX-release.aar。为什么你需要一个 .arr 文件?如果要使用库,只需在 build.gradle 中添加以下脚本: dependencies { compile project(':YourLibraryProject') }
  • 我想将来在我的 android 应用程序中使用这个库。这是一个库,我想获得它的发布输出,但我不明白为什么,但我在我的库的“\app\build\outputs\aar”文件夹中只获得了 XX-debug.aar 而不是 XX-release.aar。
  • 从终端窗口,一旦进入项目文件夹,我执行了以下命令:“./gradlew clean”和“./gradlew aR”,现在“XX-release.aar”生成到“..\app\build\outputs\aar”文件夹。我怎样才能从 Android Studio 做同样的事情?也就是说,告诉 Android Studio 也组装 Release。
  • 通常您需要做的就是在 android studio 中构建项目,但我在几个应用程序中遇到了同样的问题。所以在终端里做是唯一的解决办法。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    我在 IDE 的右侧找到了这个菜单,并启用了默认选项。

    右键单击您想要的任务,然后单击“运行”。

    【讨论】:

    • 这对我有用,但我注意到,一旦我在 cmets 中运行了 user1624552 建议的 cmd 行等级命令,标准“构建”菜单中的构建也开始工作,以获得另一个答案。如果没有运行命令行等级的人可以确认此侧面 gradle 菜单方法也有效,这将很有用,因为我注意到命令行在运行之前下载了在我的案例中看起来像新版本的 gradle,我想知道这是否也是必需的步骤。
    • 顺便说一句,做得很好!如果 Google 的任何人正在查看此内容,很高兴知道是否有任何计划链接/合理化/解释顶部 Build 菜单、这个“新”Gradle 侧菜单和 Build Variants 视图等?
    • 是的,当然。我也按照其他答案的建议从命令行运行 gradle ,直到找到该菜单。我不确定在使用侧面菜单之前是否需要先从命令行运行它......有趣的是,您从侧面 gradle 菜单运行的任何任务都会成为默认操作“运行”操作。因此,换句话说,绿色箭头图标和运行菜单指向最后运行的 gradle 任务。有用:)
    • 只有一个问题,当你在release模式下导出aar文件时,它会包含最新的proguard属性吗?
    • 是的,如果您运行 assemble 任务,它将应用您在项目中定义的任何 progaurd 规则。
    【解决方案4】:

    这个问题已经可以用execute之类的答案来处理了

    ./gradlew assembleRelease
    

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

    【讨论】:

      【解决方案5】:

      我在 AS 2.3.3 中遇到了这个问题,并通过将模块的构建变体更改为发布并再次构建它来解决它:

      【讨论】:

        【解决方案6】:

        还有一个两部分的问题,没有人回答第二部分...

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

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

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

        ./gradlew assembleRelease
        

        您不需要为此类任务签署配置。

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

        添加到您的模块gradle.build

        android{
            project.archivesBaseName = "AnotherLibraryName"
        }
        

        【讨论】:

          【解决方案7】:

          使用 Android Studio 3.0 更容易生成 aar 文件。从 Gradle 选项中,检查如图所示的选项

          【讨论】:

          • 在我的项目中我看不到 assemble 发布选项。
          • 当我在项目中导入我的发布 .aar lib 时,会出现类似“AAPT: error: attribute ... not found”@leeCoder 之类的错误
          【解决方案8】:

          对我来说,只需修复库中未产生编译错误的布局错误(缺少 androidx 插件)即可修复它,<lib>-release.aar<lib>-debug.aar 一起出现在 build/outputs/aar/ 文件夹中。

          【讨论】:

            【解决方案9】:

            创建.aar

            你可以使用命令行

            ./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 &lt;moduleName&gt;:assemble&lt;build_variant&gt;./gradlew &lt;moduleName&gt;:bundle&lt;build_variant&gt;Aar有什么区别?
            【解决方案10】:

            来自 Android Studio v4.x:

            1. 选择构建变体选项卡
            2. 选择发布模式
            3. 然后菜单 > 构建 > 制作模块...
            4. 点击顶部菜单中的构建 > 重建项目

            您的 .aar 文件将在左侧的项目文件层次结构中找到,位于 MyLibrary/Build/outputs 下(您可能需要首先将视图从 Android 视图 更改为 项目视图,查看这些文件 - 使用左上角的下拉菜单)

            【讨论】:

            • 这是适合我的现代答案
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-03-11
            • 1970-01-01
            • 2017-07-01
            • 1970-01-01
            • 2014-08-10
            相关资源
            最近更新 更多