我正在尝试基于Gradle的新Android构建系统,我在想,用它自动增加versionCode的最佳方法是什么.我正在考虑两种选择
有没有更简单或合适的解决方案?
有没有人使用过mentiod选项之一并可以与我分享?
因此,要在gradle android中更改生成的APK文件名,我可以执行以下操作:
applicationVariants.output.all {
outputFileName = "the_file_name_that_i_want.apk"
}
Run Code Online (Sandbox Code Playgroud)
生成的App Bundle文件有类似的东西吗?如何更改生成的App Bundle文件名?
我发现了类似的问题,但没有什么能够解决我想做的事情.我正在使用Android Studio和gradle进行开发,我的构建文件中有几种风格,每种风格都有一个versionName.有没有办法在APK文件中包含flavor的版本名称?
所以这发生了.无论我在build.gradle上尝试做什么,所有APK都会带有native_code = 'x86_64'标志,所以当我将应用程序部署到商店时,结果是有+ 15K不兼容的设备,只有19兼容.我首先想到,不知何故,安装NDK是原因,或者我修改后的构建脚本.但是当我通过Generate Signed APK向导时,它仍然会发生.该splits区块最初也失踪了,并没有帮助.最奇怪的是,当我通过控制台推送安装时,IT工作!
我也试过切换到推荐的JRE,还有几个关于文件创建的APK命名策略,比如将输出移动到不同的目录或不使用文件构造函数.
我build.gradle看起来像这样:
defaultConfig {
applicationId "com.chiskosystems.brokr"
versionCode versionNumber
versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild}) Release"
minSdkVersion 16
targetSdkVersion 25
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
jackOptions {
enabled false
}
vectorDrawables {
useSupportLibrary true
}
}
splits {
abi {
enable true
reset()
include 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3]
applicationVariants.all { variant ->
variant.outputs.each { output ->
def fileNaming = "apk/brokr"
def outputFile = output.outputFile …Run Code Online (Sandbox Code Playgroud) 我正在尝试在gradle,android studio中设置一个漂亮的小版本脚本,每次我进行构建时版本名称都会增加,而版本代码只会在我发布版本时增加.这可能吗?
我认为可以解决的是检查下面的if语句是否是一个版本.但是我如何检查它是否是一个版本?
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
def versionPropsFile = file('version.properties')
def code
def name
def Properties versionProps
if (versionPropsFile.canRead()) {
versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
code = versionProps['VERSION_CODE'].toInteger() + 1
name = versionProps['VERSION_NAME'].toInteger() + 1
versionProps['VERSION_CODE']=code.toString()
versionProps['VERSION_NAME']=name.toString()
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
versionCode code
versionName "1.2." + name
minSdkVersion 14
targetSdkVersion 19
}
} else {
throw new GradleException("Could not read version.properties!")
}
signingConfigs {
debug {
...
}
releaseKey {
...
}
}
buildTypes {
debug …Run Code Online (Sandbox Code Playgroud) 我正在使用Android Studio 3.0.1。
当我尝试运行应用程序时
INSTALL_FAILED_USER_RESTRICTED:无效的APK
发生错误。
我也禁用即时运行。
我再次运行应用程序,但发生相同的错误。
04/04 10:59:08:启动app
$ adb push G:\ Android \ Fundraiser \ BuyForFund \ app \ build \ outputs \ apk \ debug \ app-debug.apk /data/local/tmp/com.android.buyforfund
$ adb shell pm install -t -r“ /data/local/tmp/com.android.buyforfund”
失败[INSTALL_FAILED_USER_RESTRICTED:无效的APK]$ adb shell pm卸载com.android.buyforfund
DELETE_FAILED_INTERNAL_ERROR
安装APK 时出错
目前我正在尝试通过自动递增版本代码来改进我们的编译器,因此我们的QA团队已经知道他们正在测试的构建版本并且可以记录特定的版本代码.我们有3个productFlavors(登台,qa,生产)和2个签名配置(调试,发布).
我研究了不同的解决方案:
如何在Android Gradle中自动增加versionCode
如何在Android Gradle中自动增加versionCode
基于这些答案,我使用version.properties文件构建了一个版本代码增量器.
现在问题出现了,对于每个productFlavor和SigningConfig组合(+ android studio中的gradle sync),都会生成一个新的版本代码.每当我点击播放按钮创建qaRelease构建时,我希望版本代码递增.所以我们的构建周期将是: