【问题标题】:Android studio (Gradle) doesn't create signed apkAndroid Studio (Gradle) 不会创建签名的 apk
【发布时间】:2016-02-20 12:55:54
【问题描述】:

为了模拟 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 标志。那么,知道我的错误在哪里吗?

【问题讨论】:

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


    【解决方案1】:

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

    buildTypes {
        mock {
            signingConfig signingConfigs.debug
        }
    }
    

    这也将启用 gradle 任务installMock,如果没有signingConfig,它将不可用。 assembleMock 只是在没有它的情况下创建一个未签名的构建。

    【讨论】:

    • 天啊!!实际上,我是在输入. 后才这样做的,它只是建议我输入release。因为我的debug 类型中没有它,所以我决定不使用它。根据您的建议,我复制/粘贴并且它有效。谢谢道格;)
    • 我一直在寻找这个 2 年...我的男人!你救了我:)
    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2017-01-30
    相关资源
    最近更新 更多