如何动态更改applicationID

2023-11-30

我正在尝试通过将原始 id 附加到 GIT 分支的分支名称来更改我的 applicationId 。剧本重命名ID.sh完成重命名applicationID的工作。

虽然我可以在运行构建时成功重命名ApplicationID,但我希望在构建后恢复applicationID。

脚本restoreID是将applicationID恢复为原始名称,但似乎不起作用。

有人可以指出我做错了什么或建议一些更好的方法来执行我的目标任务吗?

apply plugin: 'com.android.application'

class Config{
    String name
}

task renameAppId(type:org.gradle.api.tasks.Exec) {
    commandLine 'sh', 'renameID.sh'

}

preBuild.dependsOn renameAppId
task finaltask(type:org.gradle.api.tasks.Exec){
    commandLine 'sh', 'restoreID.sh'

}

build.finalizedBy(finaltask)


android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.abc.xyz"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:recyclerview-v7:+'
    compile 'com.android.support:cardview-v7:+'
    compile 'com.android.support:support-v4:24.0.0'
    compile 'de.hdodenhof:circleimageview:1.3.0'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.android.support:design:22.2.1'
}

有一个 applicationIdSuffix 函数,您可以将其应用于您的 buildType。像这样的东西

buildTypes {
    debug {
        applicationIdSuffix branch_name
    }
}

另外,您可以通过这种方式获取当前分支名称

    def branch_name = ""
    try {
        branch_name = "git rev-parse --abbrev-ref HEAD".execute().text.trim();
    } catch (ignored) {
        println "Git not found"
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态更改applicationID 的相关文章

  • Kotlin Android Firebase 数据库哈希映射转换为类

    我正在尝试从 firebase 数据库获取数据 断点显示它正在获取数据 但看起来我没有正确地将其分配给我的班级 这会导致此异常 java lang ClassCastException 无法将 java util HashMap 转换为 班
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 在 Android 中使用 awt

    我有一个绘制图表的 Java Swing 应用程序 它使用 Graphics2D 调用和 awt 对象 例如 Rectangle 等 在某些时候我可能想将其移植到 Android 上 我知道我无法在 Android 上使用 Graphics
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • 将清除会话标志设置为 FALSE 后,我丢失了已发布的值

    有人有一个合乎逻辑的解释为什么尽管我有clear session flage false当我未连接到经纪商时 我没有收到我订阅的更新的已发布消息 将 aore提到的标志设置为 false 后 我运行了我的应用程序 并且我不断向主题发布一些值
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 使用 START_STICKY 启动时服务进程被终止后的 onStartCommand

    我一直在阅读 Android 文档 我想知道是否有人可以阐明当以 START STICKY 启动的服务的进程被终止时服务实例会发生什么情况 我假设本地状态数据 实例变量 也丢失了 Android 在重新创建服务时是否会采取任何措施来帮助重新
  • 添加 play-services-maps 依赖项自动添加 glEsVersion 2.0 要求

    我想融入Google Play Services Maps module 由于地图清单声明
  • Android中如何使用intent加载本地html页面?

    我的 asset 目录中有一个 html 文件 我必须使用 Intent 将其加载为浏览器应用程序 这是我的代码 但它不起作用 startActivity new Intent Intent ACTION VIEW Uri parse fi
  • foo.setVisibility(View.GONE) 和parent.removeView(foo) 之间的区别

    如果 foo 是一个视图 那么有什么区别foo setVisibility View GONE and fooParent removeView foo 我对两个语句之前和之后视图的内存消耗特别感兴趣 可见性设置为 GONE 的视图是否会消
  • 有没有办法创建 PWA(渐进式 Web 应用程序)的 Android 桌面小部件?

    我正在构建一个渐进式 Web 应用程序 有没有办法创建 Android 桌面小部件 None
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • onStart() 到底做了什么? - 安卓[重复]

    这个问题在这里已经有答案了 一段时间以来 我一直想知道 onStart 函数在 android 生命周期中的确切作用 网上的大多数资源只是说 它在您的活动在屏幕上可见之前被调用 但到目前为止我所做的应用程序我从未使用过onStart 我在
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv
  • 将主题应用到 v7 支持操作栏

    我正在使用support v7库来实现ActionBar在我的应用程序中 我的styles xml file
  • android.view.WindowLeaked - 使用对话框和新意图时

    我已经尝试了 stackoverflow 上提供的所有可能的解决方案 但我仍然在 logcat 中遇到此错误 活动 com xyz MainActivity 泄露了最初在此处添加的窗口 com android internal policy

随机推荐

  • 如何绕过 gitlab-runner 要求输入 sudo 命令的密码或 gitlab-runners 的默认密码是什么

    我是 gitlab runner 的新手 并尝试自动化我的项目 以便每当发布新标签时 它都应该构建一个新的 deb 包 PS 我用的是mac 下列的thisgitlab 的官方链接来完成我的任务 我的第一个 gitlab ci yml 文件
  • jquery连续运动动画

    连续运动 我想在上面的网站中重新创建卡车时刻 这是在 mootools 中完成的 我该如何编码 是否有 jQuery 插件可以做到这一点 因此 从屏幕的开始到结束为对象设置动画 然后重新开始 我该如何做这个 jQuery 任何帮助将不胜感激
  • Sparkr 将 DF 写入文件 csv/txt

    你好 我正在纱线模式下开发 SparkR 我需要将 Sparkr df 写入 csv txt 文件 我看到有write df但它会写入镶木地板文件 我尝试做这些事情 RdataFrame lt collect SparkRDF write
  • CircleCI 中的 Terraform 销毁失败

    我目前使用 CircleCI 作为我的 CI 工具来使用 Terraform 构建 AWS 基础设施 我的流程是 使用 Terraform 创建 AWS 实例 安装 Docker 并在其上运行 Nginx 镜像 破坏基础设施 我的 Circ
  • '' 的错误冲突类型是什么意思?

    我收到一条错误消息 错误 的类型冲突 这是什么意思 快速解决 确保您的函数在调用之前声明一次且仅声明一次 例如 更改 main myfun 3 4 double myfun double x return x To double myfun
  • 使用 netcat 和 grep 有条件地运行命令

    我需要 netcat 来侦听传入的 HTTP 请求 并且根据请求 我需要运行一个脚本 到目前为止我有这个 netcat lk 12345 grep Keep Alive 因此 每次 netcat 收到包含 keep alive 的包时 我都
  • 在 Delphi XE5/Android 平台上播放声音警报/蜂鸣声

    有没有办法在Delphi XE5 Android平台上播放声音警报 蜂鸣声 我想要实现的是如何使用 Beep 功能像 Windows 应用程序一样播放系统警报 蜂鸣声 或者至少找到系统音频文件的路径 以便我可以根据事件运行特定的音频文件 我
  • Kafka Connect-在写入接收器之前修改记录

    我已经使用 confluence 4 0 0 安装了 Kafka connect 使用 hdfs 连接器 我可以将从 Kafka 主题收到的 Avro 记录保存到配置单元 我想知道在写入hdfs接收器之前是否有任何方法可以修改记录 我的要求
  • 如何从 Javascript 提示框获取值并将其传递到 PHP 变量以便能够保存在 SQL 中?

    这是我的问题 我希望我的脚本能够做到这一点 在用户拒绝条目 服务器端 之前 系统必须提示文本框询问拒绝的原因 然后将他们输入的原因保存到MySQL服务器 JavaScript 函数 function MyReason var reason
  • C++ 哈希弃用警告

    我对 C 和一般编程非常陌生 目前正在阅读 Bjarne Stroustrup 的编程 使用 C 的原理和实践 我一直收到以下错误 严重性代码 说明 项目文件行错误 C2338 是 已弃用并将被删除 请使用 你可以 定义 SILENCE S
  • PHP日期格式 /Date(1365004652303-0500)/

    我正在从获取日期的地方调用 API Date 1365004652303 0500 我不明白这是什么格式 这种日期格式怎么称呼 我不知道该用谷歌搜索什么来找到这种类型的格式 谁能帮我输入这个日期Y m d H i s format 我调用的
  • CalendarView android 中的小数字

    我的应用程序需要 CalendarView 但天数很少 如何让它们变大 如果有人仍然感兴趣 这是我的解决方案 基于 Phil 的帖子中提供的信息和 XSJoJo 的报告 正如那里提到的 问题的存在是因为mDateTextSize没有分配给m
  • jquery - 读取文本文件?

    我有一个 html 文件 我想打开并读取它 但我不完全确定如何做到这一点 基本上 它是一个相当大的文件 big html 并且在一个单独的文件中 Titles html 我有一些 jquery 代码 我想用它们来查找某些元素 即 h2 标签
  • Cron 表达式在该月的最后一天不起作用

    我想安排一个任务在每月最后一天上午 10 10 运行 cron 表达式是0 10 10 L 现在的问题是CronSequenceGenerator正在投掷NumberFormatException为 L 值 这意味着春天的CronSeque
  • WPF DataGrid 单元格文本换行 - 设置为 NoWrap (False)

    如何将 WPF DataGrid 中每个单元格的 TextWrapping 设置为 NoWrap 我知道单元格本身没有 TextWrapping 属性 但我想在单元格内的控件上设置该属性 我正在使用的 DataGrid 没有显式定义的列 它
  • C# 类可以从其自己的实现中调用接口的默认接口方法吗?

    如果我有一个像这样的默认接口方法 public interface IGreeter void SayHello string name gt System Console WriteLine Hello name 我可以让我的具体实现调用
  • 删除标签但保留文本

    所以我有这个 a xml 文件中的标记 a href www somethinggggg com Something 123 a 我想要的结果是使用 Nokogiri 并完全删除它的标签 这样它就不再是可点击的链接 例如 Something
  • mysql 说:无法连接:设置无效。克安普

    我更改了 root 密码进 行测试 现在我无法登录 XAMPP 中的 phpMyAdmin 页面 我寻求帮助here and here这基本上说改变了配置文件 inc php文件输入XAMPP PHPMYADMIN folder Authe
  • 如何使用 Html.BeginForm() 将 QueryString 值放入 RouteValueDictionary 中?

    我发现Html BeginForm 自动使用 RawUrl 即 QueryStringParamters 填充routeValueDictionary 但是我需要指定一个 HtmlAttribute 所以我需要使用覆盖 public sta
  • 如何动态更改applicationID

    我正在尝试通过将原始 id 附加到 GIT 分支的分支名称来更改我的 applicationId 剧本重命名ID sh完成重命名applicationID的工作 虽然我可以在运行构建时成功重命名ApplicationID 但我希望在构建后恢