Android Studio:多个模块的多个 APK

2023-12-27

在 Android 中,有一种方法可以为项目中的所有模块生成签名的 APK。 例如。我有以下项目

Project
  -- Library Module
  -- Module 1
  -- Module 2
  -- Module 3

我想用一个命令为所有 3 个模块生成 APK。目前我必须为所有 3 个单独使用“生成对话框”,这需要花费大量时间。


是的,您可以使用 gradlew 生成多个 apk 文件。

在 Android Studio 中打开终端窗口并运行以下命令:

1-导航到 gradlew 文件所在的项目的根文件夹

cd ..

2-给gradlew可执行权限(这只需要做一次,不需要再次重复)

chmod a+x gradlew

3-生成所有底层模块的可调试apk。

./gradlew assembleDebug

您还可以使用此命令为所有模块生成发布 apk 文件

./gradlew assembleRelease

有关更多详细信息,请运行以下命令以查看可以在 gradlew 上运行的所有任务的列表

./gradlew tasks

注意:第一次运行 ./gradlew 可能会导致终端从服务器下载 gradle 文件,请等待下载完成后再继续!

希望有帮助!

Update:要在成绩文件中提供签名信息,请打开模块特定的 build.grade 文件并更新它以包含以下代码:

signingConfigs {
    playstore {
        keyAlias 'KEY_ALIS_NAME_HERE'
        storeFile file('/PATH_TO_KEYSTORE_FILE_HERE/app.keystore')
        keyPassword 'KEY_PASSWORD_HERE'
        storePassword 'STORE_PASSWORD_HERE'
    }
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles 'proguard-file.txt'
        proguardFile 'proguard-file.txt'
        debuggable false
        signingConfig signingConfigs.playstore
    }
}

之后你可以简单地运行./gradlew assembleRelease做这项工作:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio:多个模块的多个 APK 的相关文章

  • 如何获取每个StorageVolume的可用大小和总大小?

    背景 谷歌 悲伤 计划破坏存储权限 https www xda developers com android q storage access framework scoped storage 这样应用程序将无法使用标准文件 API 和文件
  • 我在布局上看不到任何 FirebaseRecyclerAdapter 项目

    我试图将数据从 Firebase 数据库检索到我的布局 但我看不到任何项目FirebaseRecyclerAdapter在布局中 请帮忙 我按照一个教程展示了如何做到这一点 当我运行应用程序时 我没有看到任何项目 但我可以滚动 public
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • Bitmap.getPixels() 中的 IllegalArgumentException

    我想将数据从位图复制到int using getPixels 这是我当前的代码 int pixels new int myBitmap getHeight myBitmap getWidth myBitmap getPixels pixel
  • 在 Cordova 应用程序中获取额外功能

    我们有两个 Android 应用程序 一个使用本机 Java 实现 另一个使用 Ionic 编写 Ionic 应用程序启动我的应用程序 这是使用灯插件 https github com lampaa com lampa startapp 我
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • 对于一个单元格,RecyclerView onBindViewHolder 调用次数过多

    我正在将 RecyclerView 与 GridLayoutManager 一起使用 对于网格中的每个项目 我需要调用 REST api 来检索数据 然后 从远程异步获取数据后 我使用 UIL 加载 显示图像 一切似乎都很好 但我发现 on
  • Intellij Android Studio打开localhost页面登录github

    我正在使用 android studio 版本 4 2 beta 3 当我使用 GUI 推送 获取工作室提示时登录 github 同时我已经设置了一个帐户 奇怪的是 我可以在终端上使用 git 但不能在 GUI 上使用 我选择第一个选项 我
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始

随机推荐

  • 在 MacOS 上将 Vapor 编译为独立应用程序

    我想用我的代码将 Vapor 编译为 MacOS 应用程序 以便我可以将其放置在内部服务器上 拖动并单击以启动它 我不想在服务器上安装 Xcode swift 和其他开发文件 我是 Vapor 和 Swift 的新手 当我从 xCode 构
  • 多列上的 DISTINCT

    I have SELECT DISTINCT first second third FROM table 我不仅希望第一个是 DISTINCT 第二个是 DISTINCT 而且还希望第三个保持不 DISTINCT 我这样尝试过 SELECT
  • 使用 DataTrigger 的 .NET Maui 样式

    概述 我有两个属性 IsPast IsCurrentMonth 如果已经过去或者not当月我想用红色显示标签 以下代码是默认 Maui 应用程序的缩小版本 如果你运行它 你会得到红色标签 预期 单击一次后 它会保持红色 预期 但单击后会打开
  • 如何告诉 forfiles 执行 PATH 中的命令?

    我在以下 Windows Server 2k3 批处理命令中遗漏了一些有关转义字符串或空格的内容 明显 FORFILES m wsp c CMD C C Program Files Common Files Microsoft Shared
  • 禁用 cookie 的 PHP 会话是否有效?

    今天我参加了 Skype 面试 面试的是 PHP 开发人员的工作 其中一个问题是关于 Cookie 和 PHP 会话 问题是 如果用户浏览器中禁用了 Cookie PHP 会话是否可以设置 读取 使用 我告诉他们不是 因为默认情况下 PHP
  • 当实体映射到存储过程时,如何在调用 SaveChanges() 后获取实体的标识

    我们使用实体框架 4 0 并且有一个映射到 DBA 提供的存储过程的实体 映射详细信息中的插入 更新和删除函数都有自己的存储过程 当使用映射到表的实体时 我可以添加新实体 调用dataContext SaveChanges 然后我实例化的新
  • phonegap 运行 android - 创建命令失败,退出代码为 8 - linux

    我做了一些谷歌搜索 但没有发现任何有价值的东西 任何帮助表示赞赏 使用裸虚拟机尝试一下以确保 没有 Nodejs 安装或依赖问题 基督教 sudo apt get install nodejs sudo apt get install no
  • MembershipProvider 更改代码中的连接字符串

    我正在尝试在我的网站中实现 Asp net 表单身份验证 通常 您在 web config 中提供数据库连接字符串的名称 然而 由于我们的数据库设置有点复杂 我一直在寻找一种在代码中手动向 MembershipProvider 提供连接字符
  • 如何在 RubyMine 上使用 bundle exec rake?

    我在堆栈溢出中找到了这篇文章rubymine 错误 您已经激活了 rake 10 0 3 但您的 Gemfile 需要 rake 0 9 6 使用bundle exec 可以解决这个问题 https stackoverflow com qu
  • 字符串格式的疯狂问题

    我遇到了一个让我发疯的问题 我的宏中有两个 FOR 循环 每个循环都有一个计数器来跟踪某个过程执行的次数 计数器工作得很好 并且在循环结束时包含正确的数字 我要做的下一件事是将计数格式化为带有前导零的五位数字 我尝试过使用两种不同的方法 见
  • Celery:长期专用的整体任务与短期的多个任务

    在我的解决方案中 我使用分布式任务来监视硬件实例一段时间 例如 10 分钟 当以下情况时我必须做一些事情 我开始这个监控会话 我完成了这个监控会话 可能 在监控会话期间 在整个会话 10 分钟 内运行单个任务并执行所有这些操作是否安全 或者
  • 在过去的 7-8 年里,对 C++ 编程影响最大的是什么?

    我开始用 C 编程 这是我的第一语言 但我已经很多年没有使用它了 C 世界有哪些新的发展 什么是重要的东西 技术 书籍 框架 库等 在过去的 7 8 年里 对 C 编程影响最大的是什么 也许我们可以对每个帖子产生一个影响 这样我们就可以对它
  • IOError: [Errno 22] 无效参数 python write

    我正在写入网络共享 这是写入的代码 while not created fileName join random choice CANDIDATE CHARS for x in range len fullPath os path join
  • 如何修复 FileZilla 的响应:“550 提供的消息不完整。签名未验证。”?

    如何修复 FileZilla 的响应 550 提供的消息不完整 签名未得到验证 这有什么问题吗 这是在我的托管站点中还是在我的 FileZilla 设置中 由于已知错误 Windows IIS 服务器返回此错误 详细信息请参见微软文章修复
  • Visual Studio Code 中的多个格式化程序

    在我的团队中 有些人使用 VS Code 其他人使用 WebStorm 为了调整代码格式 我编写了 VS Code 的扩展 添加了一些缺失的规则 我的计划是与 VS Code 附带的本机格式化程序一起运行我的扩展 我使用 API 提供我的编
  • .NET 高级中 .NET 4.0 和 .NET 4.5 之间的差异

    渴望了解 NET 4 0 和 NET 4 5 在 NET 高级方面的差异以及 ASP NET C 以及这些框架中的差异 NET Framework 4 5 中的新增功能 http www techbubbles com net framew
  • 按多个属性对对象进行排序

    我一直在研究一些需要我按三个属性对对象 软饮料 进行排序的事情 name str colour str and volume int 我进行了研究并找到了分别按名称 颜色和体积对它们进行排序的方法 但是有没有一种方法可以按所有三个对它们进行
  • 如何使用 django 检查 postgresql 数据库中是否存在某些内容?

    我想检查数据库中的行是否已包含特定输入 如果它已经存在 则防止再次添加它 如果不存在 则像平常一样添加它 如何询问数据库是否存在某些内容 而不需要从数据库中提取所有内容进行检查 您可以使用 Entry objects filter name
  • 权限拒绝:打开提供程序 com.android.providers.media.MediaDocumentsProvider

    我试图允许用户访问他的照片库以获取个人资料图片 并将该个人资料图片保存到 SharedPreferences 中 我还有一个导航栏 可以从 SharedPreferences 获取这张图片 我收到以下错误 java lang Securit
  • Android Studio:多个模块的多个 APK

    在 Android 中 有一种方法可以为项目中的所有模块生成签名的 APK 例如 我有以下项目 Project Library Module Module 1 Module 2 Module 3 我想用一个命令为所有 3 个模块生成 APK