Android Studio gradle apk并且不再同步

时间:2017-02-24 19:19:28

标签: android-studio gradle

我正在使用Android Studio,我有以下build.gradle文件。

apply plugin: 'com.android.application'
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
    defaultConfig {
        applicationId "com.domain.myapp"
        minSdkVersion 17
        targetSdkVersion 25
        versionName "1.0"
        versionCode 2
        versionNameSuffix = ".alpha1"
        def date = new Date().format('yyyyMMddHHmmss')
        if (versionNameSuffix.equals("")) {
            setProperty("archivesBaseName", "myapp.$versionName.$versionCode")
        } else {
            setProperty("archivesBaseName", "myapp.$versionName.$versionCode$versionNameSuffix." + date)
        }
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        buildConfigField 'boolean', 'IS_DEBUG', 'false'
        buildConfigField 'String', 'BUILD_DATE', '\"' + date + '\"'
        buildConfigField 'String', 'VERSION_STRING', '\"' + "$versionName.$versionCode$versionNameSuffix" + '\"'
        resValue "string", "BUILD_DATE", date
        resValue "string", "VERSION", "$versionName.$versionCode$versionNameSuffix"
    }
    buildTypes {
        release {
            buildConfigField 'boolean', 'IS_DEBUG', 'false'
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def newName = output.outputFile.name
                    newName = newName.replace("-release", "")
                    output.outputFile = new File(output.outputFile.parent, newName)
                }
            }
        }
        debug {
            buildConfigField 'boolean', 'IS_DEBUG', 'true'
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def newName = output.outputFile.name
                    output.outputFile = new File(output.outputFile.parent, newName)
                }
            }
        }
    }
    productFlavors {
    }
}

基本上当我构建 - >重建项目或构建 - >构建APK时,我会生成一个apk文件,如myapp.1.0.2.alpha1.20170224125933.apk

最后一位是时间戳。 (20170224125933 => 2017/2/24 12:59:33)

通过apk手动运行时,一切都很完美。

我遇到的问题是,当我尝试运行>通过Android Studio运行myapp时,它似乎总是寻找更早的时间戳。

例如,让我们说我重建项目并获取文件:myapp.1.0.2.alpha1.20170224125933.apk。我做了一些代码更改,并希望通过Anroid Studio运行它。当我去Run时,它再次重建项目(生成myapp.1.0.2.alpha1.20170224130417.apk)并按预期删除前一个文件(myapp.1.0.2.alpha1.20170224125933.apk)但是,尝试安装上一个文件。然后我在安装apk时遇到了#34;错误。文件myapp.1.0.2.alpha1.20170224125933.apk未找到。"

我找到的唯一解决方案是删除秒标记(将日期格式更改为' yyyyMMddHHmm'),点击工具 - > Android->使用Gradle文件同步项目,然后马上就跑了。这通常有效,除非时钟在此过程的几秒钟内改变分钟。

我认为我需要Gradle->任务激活等等,以便当我点击“运行”时,它会生成一个新的apk,并且知道使用最近生成的apk。

有什么想法吗?

0 个答案:

没有答案