关于使用 Gradle4打包出现的一些问题

最近换到了 gradle4,打包文件路径变成了下面这种:
关于使用 Gradle4打包出现的一些问题_第1张图片

个人觉得目录结构有些冗余,比如渠道包很多,批量打包后就变成了这样,加固、发送给运营人员不太方便:


关于使用 Gradle4打包出现的一些问题_第2张图片

网上各种修改路径的方法:

android {
        android.applicationVariants.all { variant ->
                variant.outputs.all {
                     variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk")
                     outputFileName = "leo_v${variant.versionName}${variant.productFlavors[0].name}_${variant.buildType.name}_${new Date().format("yyyyMMdd")}.apk"
                }
            }
        }
}

emmm,确实有用的,但是这样我点击 run 按钮会报这个错,不知道其他人的电脑会不会这样:
关于使用 Gradle4打包出现的一些问题_第3张图片

Google 了一会儿,参考这个帖子 https://stackoverflow.com/questions/46985530/change-apk-output-folder-in-gradle-4-1 ,改成了

android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "../../leo_v${variant.versionName}${variant.productFlavors[0].name}_${variant.buildType.name}_${new Date().format("yyyyMMdd")}.apk"
        }
    }

OK 了,搞定!!

Tips

另外再分享个小技巧,一个打包的小脚本,比如我们公司的产品是乐偶云,命令行输入 leo ,脚本会一次运行 clean、build、打开文件浏览器,然后就可以直接把包发给测试小姐姐啦~~

  1. 打开终端,输入 open ~/.zshrc
  2. 在末尾添加
alias leo="/Users/name/Documents/MyProject;
../LeoMarketing/gradlew clean;
../LeoMarketing/gradlew assemble_testDebug;
open /Users/Documents/apk"

(/Users/name/Documents/MyProject 和 /Users/Documents/apk换成你的项目地址和打包的输出路径,是绝对地址)

  1. 保存,重启终端,输入 leo

【关键词】gradle4 打包 修改路径 outputFileName outputDirectory 无法运行 does not exist on disk

你可能感兴趣的:(关于使用 Gradle4打包出现的一些问题)