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
エラーメッセージ「引数の型を推測できません...」が下線付きで表示されます
そこで、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
}
}
構文が異なるため、新しい 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
ブロックの外側に配置する必要があります。