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 时,它会报告错误的 key 哈希。
我注意到signingConfigs
signingConfig signingConfigs.debug
带有错误消息“无法推断参数类型...”的下划线
所以我转到 UI 中的项目设置,删除签名以及构建和签名之间的关系,保存它,然后将其添加回去。同样的问题。
我确信这是我刚刚忽略的非常小的事情,或者谷歌在版本之间重命名了命令,无论如何。
有人可以帮忙吗?
最佳答案
这里有几件事,假设您的 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
}
}
关于Android Studio 不会为调试构建的代码签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28512684/