Android studio- 将签名配置添加到 gradle

Android studio- adding signing configurations to gradle

我是 android 世界的新手,我正试图在我的 phone 上获得 运行 一个简单的 hello world 应用程序。 当我尝试这个时,我了解到 android 工作室生成的 APK 是未签名的。因此,为了对此进行签名,我经历了创建密钥存储的过程,然后创建了一个私钥,它的别名,我成功地签署了 APK 并安装在我的 phone 和 运行 上。

然后我通过 this link 将签名配置添加到 gradle 以使用新创建的密钥库文件自动签署版本。 我已正确执行上述 link 的步骤并且没有遗漏任何内容,但是当我完成签名配置时仍然出现错误提示

Gradle project sync failed.Basic functionality(eg. editing, debugging) will not work properly.

Error:(19, 0) Could not find property 'config' on SigningConfig container.

吓了一跳!现在我也无法手动签署我的 APK。 现在,当我尝试手动签名时,它说 gradle 不同步

我想这个文件会帮助我解决这个错误。 build.gradle 的项目。我想了解这里提到的与我在进行签名配置时通过 Android Studio UI 配置的相同。

apply plugin: 'com.android.application'

android {
    signingConfigs {
        release {
            storeFile file("<path>\firstKeystore.jks")
            storePassword "******"
            keyAlias "usual password"
            keyPassword "******"
        }
    }
    compileSdkVersion 19
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId 'com.tech.vasanth.newsfeed'
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            debuggable false
            jniDebugBuild false
            renderscriptDebugBuild false
            zipAlign true
        }
        debug {
            signingConfig signingConfigs.config
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

buildTypes.release 块中有错误。签名配置应该是:

signingConfig signingConfigs.release

请注意,这就是您在上面的 signingConfigs 块中命名配置的方式。

同时省略 buildTypes.debug 块中的签名配置(或者,如果您真的想要它,请像上面那样设置)。

我一直在为 Debug/Release 使用以下配置。

signingConfigs {
            release {
                keyAlias 'keyAlias'
                keyPassword 'keyPassword'
                storePassword 'storePassword'
                storeFile file("${rootDir}/keystores/app.keystore")
            }

            debug {
                storeFile file("${rootDir}/keystores/debug.keystore")
                keyAlias 'androiddebugkey'
                keyPassword 'android'
                storePassword 'android'
            }
        }

定义发布模块时:

 buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'other-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }

注意:这里rootDir是你的项目根目录。请将您的密钥库存储在提到的目录中。

获取发布的结构是这样的:

signingConfigs {
        release {
            storeFile file("release.keystore")
            storePassword "******"
            keyAlias "******"
            keyPassword "******"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

大多数程序员都