Android项目中缺少Gradle构建任务installRelease

Android项目中缺少Gradle构建任务installRelease,android,gradle,android-gradle-plugin,build.gradle,Android,Gradle,Android Gradle Plugin,Build.gradle,Gradle似乎在我正在进行的一个项目中丢失了一个构建类型。我可以重新创建一个极小的问题,如下所示。我有以下文件: build.gradle local.properties src/main/AndroidManifest.xml build.gradle: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build

Gradle似乎在我正在进行的一个项目中丢失了一个构建类型。我可以重新创建一个极小的问题,如下所示。我有以下文件:

build.gradle
local.properties
src/main/AndroidManifest.xml
build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:+'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 1
        targetSdkVersion 23
    }

    buildTypes {
        debug {

        }
        release {

        }
    }
}
本地物业:

sdk.dir=/path/to/android-sdk-linux
src/main/AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="example"/>

出什么事了?为什么task
installRelease
不可用?

对于release first,您需要在根项目中创建
密钥库。
您需要在build.gradle中提供这些详细信息

如果需要,您可以创建两个
signingConfigs
debug&release

最后在
buildTypes
中链接到它

android {
        signingConfigs {
        debug {
          keyAlias 'alias'
          keyPassword 'password'
          storeFile file('../xyz.jks')
          storePassword 'password'
        }
      }
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            minSdkVersion 1
            targetSdkVersion 23
        }

        buildTypes {
            debug {
              signingConfig signingConfigs.debug
            }
            release {
             signingConfig signingConfigs.debug
            }
        }
然后
installRelease
也将在
gradle
任务中提供


希望这对您有所帮助。

对于不打算发布应用程序的边缘情况(例如测试模糊的apk),您可以跳过使用生产密钥的签名,并执行更简单的操作:

android {
    signingConfigs {
    debug {}
  }
    buildTypes {
        debug {
          signingConfig signingConfigs.debug
        }
        release {
         signingConfig signingConfigs.debug
        }
    }

非常感谢。这很有效。答案可以稍微简化:您可以从
buildType.debug
中删除
signingConfig signingConfigs.debug
。(将
signingConfigs.debug
重命名为
signingConfigs.release
可能也有意义。)@user2768很高兴为您提供帮助。我只创建了debug signingConfigs,所以我在发布版中也使用了相同的配置,只是为了向您展示。使用默认的
signingConfigs.debug
,因为它将包含调试签名密钥,不是更好吗?不要使用类路径'com.android.tools.build:gradle:+'。gradle插件会发生变化,这样您的构建脚本就会出现问题。难道+不总是使用最新的gradle插件吗?这就是我使用它的原因。听起来我错了。(看起来com.android.tools.build:gradle:1.5.0现在是“正确的”)在依赖项中使用+是否可取?使用最新版本并不意味着使用最好的版本。一个好的实践是有一个可复制的构建。如果您使用“+”,您将无法在将来复制相同的构建。依赖项也是如此。
android {
    signingConfigs {
    debug {}
  }
    buildTypes {
        debug {
          signingConfig signingConfigs.debug
        }
        release {
         signingConfig signingConfigs.debug
        }
    }