Мне было очень весело выяснить это. Вот мой проход.
Краткое руководство по созданию файла сборки gradle в IntelliJ (v.13.1.4). В этом пошаговом руководстве предполагается, что вы знаете, как создать файл хранилища ключей. Чтобы этот учебник работал, вам потребуется, чтобы файл хранилища ключей находился в папке вашего приложения, а файл zipalign.exe должен находиться в папке «SDK-ROOT \ tools». Этот файл обычно находится в 'SDK-ROOT \ build-tools', и в этой папке он находится в самой высокой папке API (альфа или бета, я рекомендую альфа-версию).
Для тех из вас, кто хочет прыгнуть прямо сюда, есть файл сборки gradle.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
signingConfigs {
playstore {
keyAlias 'developers4u'
keyPassword 'thisIsNotMyRealPassword'
storeFile file('developers4u.keystore')
storePassword 'realyItIsNot'
}
}
buildTypes {
assembleRelease {
debuggable false
jniDebugBuild false
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
zipAlign true
signingConfig signingConfigs.playstore
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:20.0.0'
implementation 'com.android.support:appcompat-v7:20.0.0'
}
Вы можете собрать часть этого файла сборки (см. Выше) из пункта меню: Структура файла / проекта. Здесь выберите Facets и нажмите «Android-Gradle (приложение)». Отсюда вы увидите вкладки: «Свойства», «Подписание», «Ароматы», «Типы сборки» и «Зависимости», для этого пошагового руководства мы просто будем использовать «Подписывание» и «Типы сборки». В разделе «Типы сборки» (в разделе «Имя») введите любое имя, которое вы хотите идентифицировать для своей конфигурации типа сборки, а в других 4 полях введите информацию о вашем хранилище ключей (задав путь к хранилищу ключей, который находится в папке вашего приложения).
Под полем «Типы сборки» введите значение «assemblyRelease» в поле имени, для «Debuggable» должно быть установлено значение «ложь», для «Jni Debug Build» должно быть значение «ложь», для параметра «Запустить Proguard» - значение «истина», а для параметра «Zip Align» - значение «истина». Это создаст файл сборки, но не так, как показано выше, вам придется добавить несколько вещей в файл сборки позже. Расположение файла ProGuard здесь будет установлено вручную в файле сборки Gradle. (как показано выше)
Контейнеры DSL, которые вы должны будете добавить после этого:
android {
....
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
....
}
Вы также должны будете добавить:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:20.0.0'
implementation 'com.android.support:appcompat-v7:20.0.0'
}
обратите внимание, что указанный выше контейнер DSL («зависимости») должен находиться внизу файла конфигурации, но не внутри контейнера DSL android. Чтобы построить контейнер зависимостей из меню IntelliJ, выберите: File / Project Structure. Оттуда снова выберите Facets, а затем Android-Gradle (приложение). Вы увидите те же 5 вкладок, как указано выше. Выберите вкладку «Зависимости» и добавьте необходимые зависимости.
После того, как все это будет сделано, вы должны увидеть файл сборки Gradle, похожий на файл в верхней части этого пошагового руководства. Чтобы создать подписанный релиз с выравниванием по почтовому индексу, вам нужно открыть задачи Gradle. Вы можете попасть в это окно, выбрав View / Tool Windows / Gradle. Отсюда вы можете дважды щелкнуть по ссылке «AsAsmbleRelease». Это должно создать ваш развертываемый APK.
Потенциальные проблемы, которые могут возникнуть при компиляции вашего релиза: (но не ограничиваясь ими): ваш файл сборки Gradle находится не в том месте. Есть два файла сборки Gradle; один в корневой папке приложения, а другой в папке приложения под корнем приложения. Вы должны использовать последнее.
У вас также могут быть проблемы с ворсом. (Примечание: Android Developer Studio гораздо лучше распознает проблемы с Lint, чем IntelliJ, вы заметите это при попытке создать подписанный APK из параметров меню)
Чтобы обойти проблемы с линтом, вам нужно поместить следующий контейнер DSL внутри контейнера Android (вверху):
android {
....
lintOptions {
abortOnError false
}
....
}
размещение этого в вашем DSL-контейнере для Android приведет к генерации файла ошибки в папке сборки (непосредственно в папке вашего приложения), имя файла должно быть примерно таким: «lint-results-release-fatal.html», этот файл сообщит вам класс, где произошла ошибка. Другой файл, который будет сгенерирован, - это файл XML, который содержит «идентификатор проблемы», связанный с ошибкой lint. Имя файла должно быть что-то вроде 'lint-results-release-fatal.xml'. Где-то в верхней части файла вы увидите «проблему» узла, внутри которой вы увидите нечто похожее на «id =" IDOfYourLintProblem "'
Чтобы устранить эту проблему, откройте файл в своем проекте, который был указан в файле 'lint-results-assemblyRelease-fatal.html', и введите следующую строку кода в файле класса Java чуть выше имени класса: @SuppressLint ("IDOfYourLintProblem «). Возможно, вам придется импортировать 'android.annotation.SuppressLint;'
Таким образом, ваш файл классов Java должен выглядеть так:
package com.WarwickWestonWright.developers4u.app.CandidateArea;
import android.annotation.SuppressLint;
... other imports
@SuppressLint("IDOfYourLintProblem")
public class SearchForJobsFragment extends Fragment {... rest of your class definition}
Обратите внимание, что подавление ошибок ворса не всегда является лучшей ИДЕЕЙ, вам может быть лучше изменить код, вызвавший ошибки ворса.
Другая проблема, которая может возникнуть, - это если вы не задали переменную среды для переменной среды Gradle HOME. Эта переменная называется «GRADLE_HOME» и должна указывать путь к домашнему каталогу gradle, что-то вроде «C: \ gradle-1.12». Иногда вам также может потребоваться установить переменную среды для «ANDROID_HOME», установив для нее «YOUR- SDK-Root \ SDK»
После того, как это сделано, вернитесь в окно задач Gradle и дважды щелкните по ссылке AsAsmbleRelease.
Если все прошло успешно, вы сможете перейти в папку app \ build \ apk и найти развертываемый APK-файл.