Android Studio не подписывает код для сборки отладки

Android Studio отказывается подписать мой код для сборки отладки.

У меня есть более старый проект, у которого не было никаких инструкций по подписанию в build.gradle, поэтому я добавил их в соответствии с этой ошибкой подписи под Android-градиентом Android и другими сообщениями.

Мой файл 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 может быть найден, потому что, когда я меняю путь, я получаю ошибку компиляции. Когда путь верен, он компилируется, но когда я пытаюсь использовать SDK для Facebook в своем приложении, он сообщает о неправильной клавиатуре.

Я заметил, что signConfigs

 signingConfig signingConfigs.debug 

Подчеркнуто с сообщением об ошибке «Невозможно вывести типы аргументов …»

Поэтому я перешел к настройкам проекта в пользовательском интерфейсе, удалил подпись и отношения между сборкой и подписью, сохранил ее и добавил. Та же проблема.

Я уверен, что это что-то очень маленькое, что я просто забыл, или Google переименовал команду между версиями.

Может ли кто-нибудь помочь?

Несколько вещей здесь, предполагая, что ваш debug.keystore является тем, 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, поскольку синтаксис отличается:

 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 .

Intereting Posts
Получить как Google «Внутренняя ошибка» Панель инструментов не будет разрушаться с помощью Scrollview в качестве дочернего элемента CoordinatorLayout Как узнать статус экрана на устройстве Android? Намерение камеры не возвращается к вызывающей активности В чем преимущество использования фрагментов в Android, а не Views? Сбой предварительного просмотра в Eclipse Android NotSerializableException повышает для объекта Вызов функции startActivity () извне активности? Как просматривать Javascript-консоль браузера запаса в Android Galaxy S4 Получение исключения SQLiteCantOpenDatabaseException Как заставить линейную компоновку в нижней части экрана, пока она находится внутри ScrollView? Android http-соединение – несколько устройств не могут подключать один и тот же сервер Открытие веб-страницы в приложении для Android Как использовать бесплатную библиотеку Android в собственном коде? Получить активность переднего плана из имени пакета?