相关疑难解决方法(0)

如何在Android Gradle中自动增加versionCode

我正在尝试基于Gradle的新Android构建系统,我在想,用它自动增加versionCode的最佳方法是什么.我正在考虑两种选择

  1. 创建versionCode文件,从中读取数字,增加它并将其写回文件
  2. 解析AndroidManifest.xml,从中读取versionCode,增加它并将其写回AndroidManifest.xml

有没有更简单或合适的解决方案?

有没有人使用过mentiod选项之一并可以与我分享?

android build auto-increment gradle android-manifest

78
推荐指数
6
解决办法
4万
查看次数

如何使用Gradle更改应用程序包的生成文件名?

因此,要在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 gradle android-gradle-plugin android-app-bundle

16
推荐指数
5
解决办法
4216
查看次数

Android/gradle:包含apk文件名中的版本名称

我发现了类似的问题,但没有什么能够解决我想做的事情.我正在使用Android Studio和gradle进行开发,我的构建文件中有几种风格,每种风格都有一个versionName.有没有办法在APK文件中包含flavor的版本名称?

android gradle

11
推荐指数
2
解决办法
3373
查看次数

Android Build Tools无论如何都只构建x86_64.APK通过adb安装,但在Play商店中显示不兼容

所以这发生了.无论我在build.gradle上尝试做什么,所有APK都会带有native_code = 'x86_64'标志,所以当我将应用程序部署到商店时,结果是有+ 15K不兼容的设备,只有19兼容.我首先想到,不知何故,安装NDK是原因,或者我修改后的构建脚本.但是当我通过Generate Signed APK向导时,它仍然会发生.该splits区块最初也失踪了,并没有帮助.最奇怪的是,当我通过控制台推送安装时,IT工作!

WTF! WTF2!

我也试过切换到推荐的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)

android build build-tools gradle

8
推荐指数
1
解决办法
325
查看次数

android studio gradle版本增量

我正在尝试在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 gradle android-studio android-gradle-plugin

5
推荐指数
1
解决办法
1809
查看次数

在Android中失败[INSTALL_FAILED_USER_RESTRICTED:无效的APK]

我正在使用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 时出错

android failed-installation adb apk android-studio

5
推荐指数
4
解决办法
4609
查看次数

仅在发行版上自动增加版本代码

目前我正在尝试通过自动递增版本代码来改进我们的编译器,因此我们的QA团队已经知道他们正在测试的构建版本并且可以记录特定的版本代码.我们有3个productFlavors(登台,qa,生产)和2个签名配置(调试,发布).

我研究了不同的解决方案:

如何在Android Gradle中自动增加versionCode

如何在Android Gradle中自动增加versionCode

使用gradle额外属性自动增加VersionCode

基于这些答案,我使用version.properties文件构建了一个版本代码增量器.

现在问题出现了,对于每个productFlavor和SigningConfig组合(+ android studio中的gradle sync),都会生成一个新的版本代码.每当我点击播放按钮创建qaRelease构建时,我希望版本代码递增.所以我们的构建周期将是:

  • 开发(永远不要更改版本代码)
  • qual(更新版本代码)
  • 制作(永远不要更改版本代码)

android gradle android-gradle-plugin

4
推荐指数
2
解决办法
2762
查看次数