archiveBaseName 应用于所有构建类型

2024-03-05

我有以下应用程序build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "io.gresse.hugo.anecdote"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 12
        versionName "1.0.0"
    }

    buildTypes {
        release {
            archivesBaseName = "anecdote-" + defaultConfig.versionName
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
        debug {
            archivesBaseName = "anecdote-DEBUGDEBUGDEBUG-"
        }
    }
}

当我执行时./gradlew assembleRelease assembleDebug

输出的.apk是:
- anecdote-DEBUGDEBUGDEBUG-debug-unaligned.apk
- anecdote-DEBUGDEBUGDEBUG-debug.apk
- anecdote-DEBUGDEBUGDEBUG-release-unaligned.apk
- anecdote-DEBUGDEBUGDEBUG-release.apk

我想要什么:
- anecdote-DEBUGDEBUGDEBUG-debug-unaligned.apk
- anecdote-DEBUGDEBUGDEBUG-debug.apk
- anecdote-1.0.0-release-unaligned.apk
- anecdote-1.0.0-release.apk

有没有什么办法可以申请档案库名称到特定的构建类型或者这是一个错误?

Thanks,


正如您可能注意到的,这个问题很混乱。

相关答案here https://stackoverflow.com/a/18334677/1377145 and here https://stackoverflow.com/a/20660274/1377145.

这对我有用。我想保持简单archiveBaseName但它似乎已被弃用并且适用于所有构建类型。

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "io.gresse.hugo.anecdote"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 12
        versionName "1.0.0"
    }

    project.ext.set("archivesBaseName", "Anecdote");

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            if(variant.buildType.name == "release"){
                output.outputFile = new File(
                        output.outputFile.parent,
                        output.outputFile.name.replace(".apk", "-"+variant.versionName + ".apk"))
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

archiveBaseName 应用于所有构建类型 的相关文章

  • 关于android Sqlite在多进程情况下的安全性

    在我的应用程序中 存在多个进程 并且在每个进程中 我需要访问同一个SQLite数据库 当然 这意味着超过2个线程 所以我不仅担心SQLite的线程安全性 还担心SQLite的线程安全性 还有过程安全 这种情况的一种解决方案是使用内容提供者
  • 不支持动态值作为注释中的属性 - AspectJ Android [AOP Android]

    我正在使用自定义注释来记录用户单击的 id 但我收到一个错误 属性值必须是常量 我的代码片段如下 mAssetId Asset getContentId TrackEvent track event ArrayParams Params k
  • Android 视图展开动画

    我正在尝试编辑这些来源 https github com gabrielemariotti androiddev tree master AnimationTest创建一个适用于我所有视图的简单函数 Override public void
  • Gson.toString() 给出错误“IllegalArgumentException:多个名为 mPaint 的 JSON 字段”

    我想将自定义对象转换为字符串并保存在 SharedPreferences 中 这是我的最终目标 我尝试了下面的行但失败了 String matchString gson toJson userMatches Logcat 10 11 15
  • 以编程方式启用/禁用广播接收器

    我们有一个可以扫描蓝牙设备的应用程序 负责扫描的代码应仅在启用蓝牙时运行 此外 我们希望随时禁用 启用此功能 我们选择实现一个注册BluetoothAdapter ACTION STATE CHANGED广播的BroadcastReceiv
  • 使用反向无限滚动添加到 ListView 时保持滚动位置

    我正在构建一个类似聊天的 Android 应用程序 类似于环聊 为此 我使用垂直 ListViewstackFromBottom true and transcriptMode normal 该列表按从较旧的消息 顶部 到较新的消息 底部
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • 完成特定 Activity 的所有实例

    应用程序中可以有很多活动 最后启动的活动保留在堆栈顶部 按下后它会完成当前活动 我有一系列活动 这是流程 如果我们有 A B C 1 D C 2 活动 C 1 和 C 2 是在导航应用程序时启动的活动 C 的两个不同实例 因此 必需的是清除
  • GCM(Google 云消息传递)是否需要 Google 帐户?

    我需要编写一个简单的应用程序来获取推送通知 我使用 GCM 它使用 Google Play 服务来获取信息 我的问题是 要访问 GCM 是否需要 Google 帐户 我可以使用其他电子邮件帐户来识别设备吗 有没有其他方法可以获取另一个电子邮
  • 在InputMethodService 外部调用InputMethodManager.setInputMethod(IBinder token, String id)。哪里可以找到代币?

    我想通过单击按钮在我的 EditText 上显示 Google 语音输入 IME 所以 根据this http android developers blogspot ru 2011 12 add voice typing to your
  • Android 连接有时会被拒绝(并非所有时候)

    我编写了一个 WiFi Direct 代码连接并在它们之间创建了一个连接 然后我创建了一个ServerSocket在第一面和一个Socket在客户端并开始在它们之间发送数据 第一次启动应用程序时它工作成功 但是当我关闭应用程序并再次启动它时
  • 为什么设置 MediaRecorder 时显示错误 IllegalStateException?

    我的代码设置 MediaRecorder 它显示行集质量错误 mMediaRecorder new MediaRecorder Step 1 Unlock and set camera to MediaRecorder mCamera st
  • 在 android studio 上单击推送通知后重定向到特定活动

    我正在努力开发一个 Android 应用程序 以便在单击所有传入的推送通知时将应用程序重定向到特定的活动页面 我是 Android 开发新手 对我的编程感到抱歉 下面是推送通知部分的 android manifest xml 如果对此主题有
  • 如何为工具栏上的溢出菜单中的菜单项设置字体

    我想更改项目的默认字体溢出菜单并设置自定义字体 我尝试添加一个工厂LayoutInflater并在onCreateView 方法我改变了TextView的字体 但这没有用 这是代码 在 onCreateOptionsMenu 内 getLa
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • 随着速度变化,速度表针规绕其中心旋转

    Hi all 我编写了一个应用程序 其中有一个速度计 其指针垂直设置为 90 度 我试图以每秒变化的速度绕其中心旋转指针 我在文本视图中显示变化的速度 从 0 到 120 随机 我正在从远程服务获取速度并显示在文本视图中 因此 当速度发生变
  • 动画结束后更改视图位置

    我开发了一个基于ViewGroup我的问题是我需要在动画结束后保存项目的位置 我打了电话setFillAfter true 在我创建的动画对象中AnimationListener并在其中onAnimationEnd方法调用View layo
  • Android应用程序中的模式输入

    我想知道是否有其他替代方案可以替代 Android 上平庸的 EditText 密码输入 是否有 API 或开源代码可以集成到我的应用程序中 类似于锁屏图案解锁 Intent 可能会返回哈希值 数字 字符串或代表用户输入的模式的任何内容 我
  • 我的 apk 文件在模拟器中的位置

    我在 eclipse android 中编写了一个小程序 现在我安装并运行我的程序 它是一个 apk 现在我想知道我的 apk 文件在哪里 我什至想将它 拉 到我的系统中 是否可以 如果是这样请帮助我 如果您只想将 apk 安装在手机或类似
  • Android 使用非公历

    我正在创建一个DatePickerDialogFragment用户将在其中选择出生日期 我想确保我可以处理非公历日期 我无法更改在我的设备上使用的日历类型 Android 是否允许用户切换日历类型 如果是的话 步骤是什么 到目前为止我还没有

随机推荐

  • NServiceBus升级到3.3.8版本后出现WebException错误404

    我刚刚将 NServiceBus 解决方案更新到版本 3 3 8 我之前的版本是3 2 2 当我运行我的解决方案时 我收到以下错误 发生Web异常 远程服务器返回错误 404 未找到 发生 System Net WebException H
  • 将 csv 中的列转换为日期 powershell

    我有一个与此类似的 csv fundName MMFcusip ticker AsOfDate SumHoldingPercent BlackRock OH Muni MMP Instit 091927236 COIXX 2 29 2012
  • 在 LISP 中如何检查闭包中的自由变量?

    在 lisp 中 我可以像这样绑定在闭包中绑定的自由变量 let x 1 y 2 z 3 defun free variables x y z free variables 结果是 6 我想知道是否可以动态检查绑定的闭包变量 E g ins
  • 嵌入 python 错误 不支持按文件名导入

    我正在尝试将 python 嵌入到我的应用程序中 但很早就陷入了困境 我将 python 嵌入到我的 C 应用程序中并使用本教程中找到的代码 http docs python org 2 extending embedding html p
  • Android:使用 DrawableCompat 着色

    我正在尝试对 Android API 级别 21 之前的图像进行着色 我已经使用以下方法成功对项目进行了着色
  • XHR跨域限制的目的是什么?

    我一直想知道XHR跨域限制的目的是什么 其目的似乎是防止恶意注入的 Javascript 将私有数据发送给攻击者 然而 通过注入可以轻松地将数据发送到任何域script or img标签 或任何其他与此相关的外部资源 如果任意网站可以对您的
  • django Rest框架::传递原始查询

    是否可以在 django Rest 框架 如 django rest 中执行原始查询 https docs djangoproject com en dev topics db sql performing raw queries http
  • 在平板电脑模式下在最上面启动另一个应用程序

    当我从应用程序运行另一个 exe 时 它 在后台启动 并且不会在屏幕顶部显示该应用程序 而是显示平板电脑模式主屏幕 它在正常桌面模式下工作正常 但当我在 Windows 10 平板电脑模式下运行它时它不会显示在顶部 而是在后台启动 我用过m
  • 什么是UUID?

    嗯 什么是一 它是唯一标识某物的标识号 这个想法是 id 号码将是普遍地独特的 因此 任何两个事物都不应该具有相同的 uuid 事实上 如果您要生成 10 万亿个 uuid 则两个 uuid 相同的概率为 0 00000006
  • 模块自动加载就意味着可靠吗?

    环境 我有以下文件夹结构 用于保存 powershell 模块 C PsModules util util psm1 this contains implementation of Test Function util test ps1 f
  • 将枚举值映射到 TypeScript 中的各个类型

    我有一段 TypeScript 代码 如下所示 enum EventType EVENT A eventA EVENT B eventB more event types interface Event type EventType int
  • 在 Android 上开发电子邮件客户端应用程序

    我正在尝试开发一个用于在Android平台上发送和接收电子邮件的小应用程序 目前我一直在使用 Javamail api 尝试发送电子邮件 但是我想 如果我使用 javamail 实现我的应用程序 我将如何接收电子邮件并从我的应用程序收到我已
  • 一个 python 脚本可以同时运行 python 2.x 和 python 3.x

    我有数千台服务器 linux 有些只有 python 2 x 有些只有 python 3 x 我想编写一个脚本 check py 可以在所有服务器上运行 就像 check py 一样 无需使用 python check py 或 pytho
  • 如何将 Azure Active Directory 身份验证添加到 Razor Pages 应用程序?

    据我了解 您可以通过执行 新建项目 gt ASP NET Core Web 应用程序 gt 提供应用程序名称 gt Web 应用程序 在 Visual Studio 2019 中创建 Razor Pages 应用程序 以下教程演示如何将 A
  • 删除整数中的重复数字[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在技术回合中遇到过这个程序 他们给了我这个程序来删除给定整数中的重复数字不使用数组或字符串 Example int i 12313425
  • jquery change() 警报一键触发 6 次?

    jQuery document ready function c5sliderSelect change function alert change clicked 当我更改选择列表项时 我收到 6 条警报 不知道为什么 我的标记中只有一个
  • JTable 中特定列的比较器

    如何为 JTable 中的特定列设置自定义比较器 我的表的第三列包含双精度值的字符串表示形式 我想为该列创建一个比较器 以便当我单击该列的标题时 它将根据该比较器进行排序 第一个问题是 如果您正在管理双打 为什么您正在处理字符串 如果您使用
  • 防止 Backbone.js 模型在首次添加到集合时进行验证

    首次创建新模型时 有没有办法在 Backbone js 中抑制模型验证 在我的应用程序中 我有一个包含任意数量模型的集合 这些模型表示为列表项 用户可以单击每个项目上的按钮 这会在当前项目下方插入一个新的空项目 显然 空项目未通过验证 因为
  • 如何将 IPV6 地址转换为 IPV4 地址?

    我有使用 IPv4 地址的应用程序 它存储它们很长 因此它只理解 IPv4 地址 是否可以使用Java将IPv6地址转换为IPv4地址 While IPv4 地址范围有 IPv6 等效项 https en wikipedia org wik
  • archiveBaseName 应用于所有构建类型

    我有以下应用程序build gradle android compileSdkVersion 23 buildToolsVersion 23 0 1 defaultConfig applicationId io gresse hugo an