Android studio-向gradle添加签名配置
我对android世界非常陌生,我正试图在我的手机上运行一个简单的hello world应用程序。 当我尝试这样做时,我了解到android studio生成的APK是一个未签名的APK。因此,为了签署这封信,我经历了创建密钥存储和私钥及其别名的过程,我成功地签署了APK,并在我的手机上安装和运行了它 然后,我完成了向gradle添加签名配置的过程,以使用新创建的密钥存储文件自动对发行版进行签名。 我已经正确地遵循了上面链接中的步骤,没有遗漏任何内容,但是当我完成签名配置时,仍然会出现一个错误,即 Gradle项目同步失败。基本功能(例如编辑、调试) 不会正常工作 错误:(19,0)在SigningConfig上找不到属性'config' 容器 我大吃一惊!现在我也无法手动签署我的APK。 现在,当我尝试手动签名时,它显示渐变不同步 我想这个文件会帮助我解决这个错误。项目的build.gradle。我试图理解的是,这里提到的内容与我在进行签名配置时通过Android Studio UI配置的内容相同Android studio-向gradle添加签名配置,android,android-studio,code-signing,android-install-apk,Android,Android Studio,Code Signing,Android Install Apk,我对android世界非常陌生,我正试图在我的手机上运行一个简单的hello world应用程序。 当我尝试这样做时,我了解到android studio生成的APK是一个未签名的APK。因此,为了签署这封信,我经历了创建密钥存储和私钥及其别名的过程,我成功地签署了APK,并在我的手机上安装和运行了它 然后,我完成了向gradle添加签名配置的过程,以使用新创建的密钥存储文件自动对发行版进行签名。 我已经正确地遵循了上面链接中的步骤,没有遗漏任何内容,但是当我完成签名配置时,仍然会出现一个错误,
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'])
}
apply插件:“com.android.application”
安卓{
签名配置{
释放{
存储文件文件(“\\firstKeystore.jks”)
存储密码“******”
keyAlias“常用密码”
密钥密码“******”
}
}
编译DK19版
buildToolsVersion“20.0.0”
默认配置{
applicationId'com.tech.vasanth.newsfeed'
明斯克版本19
targetSdkVersion 19
版本代码1
versionName“1.0”
}
建筑类型{
释放{
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
signingConfig signingConfigs.config
可调试错误
JNIDBUGBUILD false
renderscriptdebugbuildfalse
齐帕林真
}
调试{
signingConfig signingConfigs.config
}
}
产品风味{
}
}
依赖关系{
编译文件树(目录:“libs”,包括:['*.jar'])
}
在构建类型中有一个错误。释放块。签名配置应为:
signingConfig signingConfigs.release
请注意,这是您在上面的signingConfigs
块中命名配置的方式
另外,在buildTypes.debug
块中省略签名配置(或者,如果您真的想要,请按上面的方式进行设置)。我一直在使用以下配置进行调试/发布
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
}
}
大多数程序员都我已经按照您的建议进行了更改,现在我在buildTypes.debug signingConfig signingConfigs.config中的这一行中发现了错误。我可以删除它吗?哦,是的。。谢谢,成功了!我想知道的一件事是,我已经给出了上面的链接,对吗?我使用studio的UI来配置签名配置。因此,我也可以通过配置build.gradle来实现这一点?两者都是同一个?是的,build.gradle
文件包含了有关构建的所有信息。您甚至可以在不打开Android Studio的情况下从命令行构建项目。哇,很高兴知道,任何我可以使用命令行工具进行构建的指针都将受到欢迎:)只需将cd刻录到项目的根目录并执行gradlew build
(如果您在Linux上,请使用/gradlew)。所有细节都可以在gradle文档中找到,这是否回答了您的问题?