Задача сборки Gradle installRelease отсутствует в Android-проекте

Кажется, что Gradle потерял тип сборки в проекте, над которым я работаю. Я могу воссоздать минимальную проблему следующим образом. У меня есть следующие файлы:

build.gradle local.properties src/main/AndroidManifest.xml 

build.gradle:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:+' } } apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 1 targetSdkVersion 23 } buildTypes { debug { } release { } } } 

local.properties:

 sdk.dir=/path/to/android-sdk-linux 

SRC / Основной / AndroidManifest.xml:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example"/> 

Я ожидал бы, что Gradle будет генерировать задачи installDebug и installRelease , поскольку я определяю debug и release как buildTypes . Однако это не так. gradle tasks команды производят:

 :tasks ------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------ ... Install tasks ------------- installDebug - Installs the Debug build. installDebugAndroidTest - Installs the android (on device) tests for the Debug build. uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build. uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build. uninstallRelease - Uninstalls the Release build. Verification tasks ------------------ ... 

Что происходит не так? Почему не установлена installRelease ?

Для начала сначала вам нужно создать keystore в корневом проекте. И вам нужно предоставить эти детали в build.gradle.

Вы можете создать два отладки и отладки signingConfigs если хотите.

Наконец, в buildTypes ссылается на это.

 android { signingConfigs { debug { keyAlias 'alias' keyPassword 'password' storeFile file('../xyz.jks') storePassword 'password' } } compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 1 targetSdkVersion 23 } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.debug } } 

Тогда installRelease будет доступна в программе gradle Task

Надеюсь, это будет полезно для вас.

Для случая с краем, когда вы не собираетесь публиковать приложение (например, тестирование запущенного apk), вы можете пропустить подпись с помощью производственного ключа и сделать еще проще:

 android { signingConfigs { debug {} } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.debug } } 
Intereting Posts