gpt4 book ai didi

android - android gradle脚本构建后如何自动将APK放入 Assets 中

转载 作者:行者123 更新时间:2023-11-30 00:01:00 25 4
gpt4 key购买 nike

我正在使用 DexClassLoader 来动态加载类,现在,我需要每次都将 APK 文件复制到 Assets 文件夹中。有没有办法自动添加到android gradle脚本谢谢

最佳答案

您可以使用 python 来完成此操作,同时确保您在执行此操作之前已经安装了 python。

在您的根项目中创建一个 python 文件。

build.py

import subprocess
import shutil
import os
import sys

# Call this function to build the apk via gradle.
def build_cmd():

# This will build your debug apk.
buildProject = "gradlew.bat clean --profile --recompile-scripts --offline --rerun-tasks assembleDebug";

# If you want to build a release apk use this instead.
# buildProject = "gradlew.bat clean --profile --recompile-scripts --offline --rerun-tasks assembleRelease -Pandroid.injected.signing.store.file=" + os.path.abspath("store_key.jks") + " -Pandroid.injected.signing.store.password=pass123 -Pandroid.injected.signing.key.alias=key_alias -Pandroid.injected.signing.key.password=pass123"

# As of Python 3 use run() instead of call() function
# https://docs.python.org/3/library/subprocess.html#older-high-level-api
subprocess.run(buildProject, shell=True)

# Call this function to move the builded apk to your desire directory.
def moveDir():
# Get the generated apk
apk_path = "./app/build/outputs/apk/debug/app-debug.apk"

# apk will rename and move to asset directory
shutil.move(apk_path, "./app/src/main/assets/app-debug.apk")


if __name__ == '__main__':

build_cmd()
moveDir()

然后在终端运行build.py

python build.py

然后等待 gradle 任务完成。

编辑:

因为一些成员在这个项目上没有python环境而不是在python中使用脚本尝试在你的app/build.xml中添加一些任务。渐变

android {

// Some stuffs of yours....

task copyAPKtoAsset(type: Copy) {
from "/build/outputs/apk/debug/app-debug.apk", "/build/outputs/apk/release/app-release.apk"
into "/src/main/assets/"
}

afterEvaluate {
packageDebug.finalizedBy(copyAPKtoAsset)
}
}

构建您的项目并在之后检查您的assets 目录。

关于android - android gradle脚本构建后如何自动将APK放入 Assets 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com