Android studio (Gradle) 不创建签名的 apk

标签 android android-gradle-plugin build.gradle gradlew

为了模拟 Espresso 的服务器响应,我决定创建一个新的构建类型。我尝试通过项目设置来完成此操作,但遇到了一些错误,因此我决定手动添加。

我在项目根目录的 build.gradle 文件中有以下配置:

androidConfiguration = {
        signingConfigs {
            debug {
                storeFile file("$rootProject.projectDir/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }

            release {
                storeFile file("$rootProject.projectDir/androd-prod.keystore")
                storePassword System.getenv("KEYSTORE_PASSWORD")
                keyAlias System.getenv("KEY_ALIAS")
                keyPassword System.getenv("KEY_PASSWORD")
            }
        }
}

我在主模块的 build.gradle 文件中添加了新的 mock 构建类型。

    buildTypes {
        mock {
            // Setup default urls
            buildConfigField "String", "MY_URL_BASE", "\"\""

            // Enabling multidex support.
            multiDexEnabled true

            dexOptions {
                incremental true
                javaMaxHeapSize "4g"
            }

            applicationIdSuffix '.mock'
            versionNameSuffix '-mock'
            debuggable true
        }

        debug {...}

        release {
            signingConfig signingConfigs.release
            ...
        }

        applicationVariants.all { variant ->
            variant.outputs.each { v ->
                def f = v.outputFile
                def sha = 'git rev-parse --short HEAD'.execute().text.trim()
                def fname = f.name.replace(".apk", "-${defaultConfig.versionName}-${defaultConfig.versionCode}-${sha}.apk")
                v.outputFile = new File(f.parent, fname)
            }
        }
    }

我运行 ./gradlew clean aGM 命令并且应用程序编译成功。但是,我的构建配置上有 x 符号。那么,知道我的错误在哪里吗? enter image description here

最佳答案

将此行添加到您的模拟构建类型以使用默认的调试签名配置:

buildTypes {
    mock {
        signingConfig signingConfigs.debug
    }
}

这还将启用 gradle 任务 installMock,如果没有签名配置,该任务将不可用。 assembleMock 只是创建一个没有它的未签名构建。

关于Android studio (Gradle) 不创建签名的 apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35519184/

相关文章:

java - 使用版本代码添加依赖和不使用版本代码添加依赖有什么区别?

grails - 如何在Grails 3项目中集成Grails 2插件?

gradle - 检查后在 Gradle Plugin 中运行任务

android - 在 Android MVP 中将 BroadcastReceiver 放在哪里?

android - 如何构建自定义网格

android - 在最近的 NDK 更新后,ndk-build 无法构建 Superpowered 音频库

android - 使用 Android Studio 构建的应用程序 Apk 比使用 Eclipse 构建的应用程序 Apk 大

android - Android编译依赖项-Gradle构建

gradle - 当依赖项不可用时,Gradle 构建失败

java - 检查手机屏幕是否亮起的方法