Android项目中缺少Gradle构建任务installRelease
Gradle似乎在我正在进行的一个项目中丢失了一个构建类型。我可以重新创建一个极小的问题,如下所示。我有以下文件: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
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
}
}