命令行中的Gradlew不会创建签名的APK

时间:2016-08-01 15:43:12

标签: android gradle build.gradle gradlew

如果我使用Android Studio"生成签名APK"从Build菜单中它可以工作并生成一个签名的apk。 问题是如果我尝试运行

,则不会生成apk
./gradlew clean build assembleRelease

我已经像这样配置了build.gradle:

signingConfigs {
    release {
        //set values in ~/.gradle/gradle.properties to sign with your own keystore and certificate
        storeFile file(project.hasProperty("KEYSTORE_FILE") ? KEYSTORE_FILE : "/")
        storePassword project.hasProperty("KEYSTORE_PASSWORD") ? KEYSTORE_PASSWORD : ""
        keyAlias project.hasProperty("KEY") ? KEY : ""
        keyPassword project.hasProperty("KEY_PASSWORD") ? KEY_PASSWORD : ""
    }
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        signingConfig signingConfigs.release
    }
}

lintOptions {
    abortOnError false
}

我的gradle.properties文件如下所示:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.daemon=true

KEYSTORE_FILE=/home/user/Documents/programs/keystoreAndroidStudio/keystore.jks
KEYSTORE_PASSWORD=xxxxxx yyyyy
KEY=Client
KEY_PASSWORD=xxxxx yyyyy

我做错了什么?

编辑:我也尝试将签名参数直接送到gradlew,但它也不起作用。

./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD

我开始认为这与我的包含空格的密码有关。我尝试给上一个命令一个错误的密码并且它没有抱怨,它仍然说BUILD SUCCESSFUL

1 个答案:

答案 0 :(得分:0)

了解您正在使用哪个gradle版本会有所帮助。

这是page获取最新的gradle (我建议将此页加入书签)。

我过去遇到过类似的问题(例如here),所以我的建议是:更改gradle版本,清理并重建

PS:我知道我的答案很模糊,但对我来说,页面(上面链接的)通常可以节省生命,因此分享这些信息会带来伤害。