Android Studio拒绝签署我的代码以进行调试构建。
我有一个较旧的项目,在build.gradle中没有任何签名说明,因此我根据此Android gradle signingConfig error和其他帖子添加了这些内容。
我在模块级别的build.gradle文件(唯一的模块)看起来像这样(摘录):
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "cc.appname.android"
minSdkVersion 11
targetSdkVersion 21
versionCode 1
versionName '1.0'
}
signingConfigs {
debug {
storeFile file('../../../.android/debug.keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
可以找到storeFile,因为当我更改路径时,我收到编译错误。当路径正确时,它会编译,但当我尝试在我的应用程序中使用Facebook SDK时,它会报告错误的键盘。
我注意到 signingConfigs
signingConfig signingConfigs.debug
带有错误消息的下划线"无法推断参数类型..."
所以我去了用户界面中的项目设置,删除了签名以及构建和签名之间的关系,保存了这个,并将其添加回来。同样的问题。
我确信这是一个非常小的东西,我只是忽略了,或谷歌重命名版本之间的命令,无论如何。
有人可以帮忙吗?
答案 0 :(得分:16)
这里有几件事,假设debug.keystore
是~/.android
文件夹中的 debug {
storeFile file('../../../.android/debug.keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
。
改变这个:
debug.keystore
到此(将 debug {
storeFile rootProject.file('debug.keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
存储在根项目中):
debug
您无需覆盖BuildType
debug
,无论如何都会使用 debug {
signingConfig signingConfigs.debug
}
键自然签名,因此您可以删除:
build.gradle
最终android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "cc.appname.android"
minSdkVersion 11
targetSdkVersion 21
versionCode 1
versionName '1.0'
}
signingConfigs {
debug {
storeFile rootProject.file('debug.keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
:
{{1}}
答案 1 :(得分:0)
为新gradle experimental plugin添加答案,因为语法不同:
model {
android {
buildTypes {
release {
signingConfig = $("android.signingConfigs.myConfig")
...
}
}
}
android.signingConfigs {
create("myConfig") {
keyAlias = 'androiddebugkey'
keyPassword = 'android'
storeFile = new File("${System.properties['user.home']}/.android/debug.keystore")
storePassword = 'android'
storeType = "jks"
}
}
}
注意:android.signingConfigs
块必须放在android
块之外。