Android studio Android Studio gradle apk和运行不同步

Android studio Android Studio gradle apk和运行不同步,android-studio,gradle,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 {

我使用的是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时,我会生成一个类似于myapp.1.0.2.alpha1.20170224125933.APK的APK文件

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

当通过apk手动运行时,一切都能正常工作

我遇到的问题是,当我试图通过Android Studio运行->运行我的应用程序时,它似乎总是在寻找一个更早的时间戳

例如,假设我重建项目并获得文件:myapp.1.0.2.alpha1.20170224125933.apk。我做了一些代码更改,并希望通过Anroid Studio运行它。当我开始运行时,它会再次重建项目(生成myapp.1.0.2.alpha1.20170224130417.apk),并按预期删除以前的文件(myapp.1.0.2.alpha1.20170224125933.apk),但会尝试安装以前的文件。然后,我得到一个“安装apk时出错。未找到文件myapp.1.0.2.alpha1.20170224125933.apk。”

我找到的唯一解决方案是删除秒标记(将日期格式更改为'yyyyMMddHHmm'),单击工具->安卓->与Gradle文件同步项目,然后立即点击运行。这通常有效,除非时钟在这一过程所需的几秒钟内改变几分钟

我想我需要一个Gradle->Task Activitaion之类的东西,这样当我点击Run时,它会生成一个新的apk,并且知道如何使用最近生成的apk


有什么想法吗?

这个线程是关于重命名apk文件的,我的线程在这方面的工作与预期完全一致。我的问题是,当我试图通过android studio“运行->运行我的应用程序”时,它找不到新生成的apk文件(因为某种原因,它会查找一个旧的时间戳)。该线程是关于重命名apk文件的,我的线程在这方面的工作与预期完全一致。我的问题是,当我试图通过android studio“运行->运行我的应用程序”时,它找不到新生成的apk文件(因为某种原因,它会查找一个旧的时间戳)。