我正在使用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。
有什么想法吗?