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

w1jd8yoj  于 2022-11-24  发布在  Android
关注(0)|答案(3)|浏览(276)

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 {

        }
    }
}

local.properties:

sdk.dir=/path/to/android-sdk-linux

如果您有任何问题,请联系我们。

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

我希望Gradle生成任务installDebuginstallRelease,因为我将debugrelease定义为buildTypes

:tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

...

Install tasks
-------------
installDebug - Installs the Debug build.
installDebugAndroidTest - Installs the android (on device) tests for the Debug build.
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build.
uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
uninstallRelease - Uninstalls the Release build.

Verification tasks
------------------
...

出了什么问题?为什么任务installRelease不可用?

gcmastyq

gcmastyq1#

对于发布,首先你需要在根项目中创建keystore,并且你需要在build.gradle中提供这些细节。
如果需要,您可以创建两个signingConfigs调试和发布。
最后在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任务中可用
希望这对你有帮助。

wqnecbli

wqnecbli2#

对于边缘情况,当你不打算发布应用(例如,测试一个模糊的apk),你可以跳过使用生产密钥签名,做得更简单:

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

jum4pzuy3#

您可能会发现,生成签名报告以检查是否存在所需的构建变体以及它是否具有所需的签名配置非常有用。

./gradlew app:signingReport

在我的例子中,我得到了这个错误,因为我试图运行一个不同的变体,而不是我实际上打算,我意识到这一点时,看到这个报告

相关问题