我有一个Android Studio应用程序,该应用程序现在与之相关联的接近100个“productFlavors”,当然所有这些都在build.gradle
中定义。我想从命令行构建它们,因为在IDE中一次构建一个将是一场噩梦。当我在使用gradlew.bat assembleRelease
命令行构建它们的过程中遇到错误时,就会出现我的问题。修复错误后,我想从故障点(可能有50种口味)开始构建,而不是从头开始。有办法用Gradle做到这一点吗?对于Ant,我不得不将它们注释掉,我希望Gradle有更好的方法,因为文件中的结构要复杂得多。
更新
我终于找到了一个包含Gradle和Ant的解决方案(虽然很麻烦,但是可以用)。基本上,我想在我的100种White Label口味的基础上,使用版本前缀,然后将其复制到不包含该版本的交付APK。为此,我的ANT脚本如下所示:
#!/bin/sh
DEPLOY_DIR=C:/AndroidBuilds/MyCompany.Build
VERSION="63"
NAME="WhiteLabel1"
DEPLOY_FOLDER="whitelabel1"
APK_NAME=$NAME$".apk"
gradlew assemble$NAME
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME
NAME="WhiteLabel2"
DEPLOY_FOLDER="whitelabel2"
APK_NAME=$NAME$".apk"
gradlew assemble$NAME
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME
这将导致生成2个APK,即
63-WhiteLabel1.APK
和63-WhiteLabel2.APK
,然后将它们作为WhiteLabel1.APK
和WhiteLabel2.APK
复制到各自的部署目录中我想,如果您很聪明,则可以使此参数接受仅运行所需的参数,但是Android Studio可以做到这一点。
最佳答案
您不能专门这样做,但是可以解决该问题并通过一些脚本魔术来解决。
如果您有一个名为Release
的构建类型和一个名为Iron
的类型,则可以运行:
gradlew.bat assembleIronRelease
因此,您可以编写一个脚本,该脚本将通过各种口味的循环运行,如果失败,它将告诉您哪个失败。然后,您可以修复错误,然后再次启动脚本,告诉它以X flavor 开始(不过您必须编写逻辑告诉它从哪里开始)。
关于android - Android gradlew.bat assembleRelease选择启动包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589818/