Мені було дуже весело з'ясувати це. Ось мій прохід.
Прохід до того, як створити файл збірки 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'
}
Ви можете створити частину цього файлу збірки (вище) з меню меню: Структура файлу / проекту Звідси виберіть Фасетки та натисніть «Android-Gradle (Додаток). Звідси ви побачите вкладки: "Властивості", "Підписання", "Ароматизатори", "Типи збірки" та "Залежності" для цього проходження, ми будемо просто використовувати "Підписання" та "Типи збірки". У розділі "Типи збірки" (у розділі імен) введіть будь-яке ім'я, яке ви хочете визначити конфігурацію типу збірки, а в інші 4 поля введіть інформацію про ваше сховище ключів (встановивши шлях до магазину ключів, той, який знаходиться в папці додатка).
У розділі "Типи збірки" введіть значення "assembleRelease" у поле імені, "Debuggable" має бути встановлено на false, "Jni Debug Build" має бути хибним, встановити "Run Proguard" на true та "Zip Align" на true. Це створить файл збірки, але не так, як зображено вище, після цього вам доведеться додати кілька речей до файлу збірки. Розташування файлу 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, виберіть: Файл / Структура проекту. Звідти знову виберіть Грані, а потім Android-Gradle (додаток). Ви побачите ті самі 5 вкладок, про які було сказано вище. Перейдіть на вкладку "Залежності" та додайте потрібні залежності.
Після того, як усе це зроблено, ви побачите файл збірки Gradle, схожий на файл у верхній частині цього проходження. Щоб створити свій підписаний випуск з розширенням ZIP, вам потрібно буде відкрити завдання Gradle. Ви можете дістатися до цього вікна, вибравши Перегляд / Інструмент Windows / Gradle. Звідси ви можете подвійно натиснути «збиратиAssembleRelease». Це має створити розгорнуту APK.
Потенційні проблеми, які можуть виникнути під час компіляції випуску, є (але не обмежуються ними): Ваш файл збірки Gradle знаходиться в неправильному місці. Є два файли збірки Gradle; один у кореневій папці програми та інший у папці додатка під корінь програми. Ви повинні користуватися останнім.
Також у вас можуть виникнути проблеми з волосками. (Примітка: Android Developer Studio набагато краще виявляє проблеми з Lint, ніж IntelliJ. Ви помітите це, намагаючись створити підписаний APK з параметрів меню)
Щоб усунути проблеми з обличчям, вам потрібно буде помістити наступний контейнер DSL всередині контейнера для android (вгорі):
android {
....
lintOptions {
abortOnError false
}
....
}
якщо помістити це всередину вашого DSL-контейнера, це призведе до генерування файлу помилок у папці збірки (безпосередньо під папкою вашої програми). Назва файлу має бути чимось на кшталт "lint-results-release-fatal.html", цей файл підкаже вам клас, де сталася помилка. Інший файл, який буде створений, - це XML-файл, який містить "ідентифікатор проблеми", пов'язаний з помилкою ворсу. Назва файлу має бути на зразок 'lint-results-release-fatal.xml'. Десь біля верхньої частини файлу ви побачите вузол 'issue', всередині якого ви побачите щось подібне до 'id = "IDOfYourLintProblem"'
Щоб виправити цю проблему, відкрийте файл у вашому проекті, який перелічено у файлі 'lint-results-assembleRelease-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}
Зауважте, що придушення помилок ворсу не завжди є найкращим IDEA, можливо, вам буде краще змінити свій код, який спричинив помилки ворсу.
Інша проблема, яка може виникнути, - це якщо ви не встановили змінну середовища для змінної середовища Gradle HOME. Ця змінна має ім'я 'GRADLE_HOME', і їй слід встановити шлях до домашнього каталогу gradle, як-от "C: \ gradle-1.12" Іноді ви також можете встановити змінну середовища для "ANDROID_HOME", встановивши це на "YOUR- SDK-корінь \ sdk '
Після цього поверніться до вікна завдань Gradle та двічі клацніть на збиранняAssembleRelease.
Якщо все успішно, ви повинні мати можливість перейти до програми папки \ build \ apk та знайти свій розгорнутий файл APK.