Eu me diverti bastante tentando entender isso. Aqui está o meu passo a passo.
Instruções passo a passo de A a Z sobre como criar um arquivo de construção da classificação no IntelliJ (v.13.1.4) Esta explicação pressupõe que você sabe como criar um arquivo keystore. Para que este tutorial funcione, você precisará que o arquivo keystore esteja localizado na pasta do aplicativo e que o arquivo zipalign.exe esteja localizado em 'SDK-ROOT \ tools'. Esse arquivo geralmente é encontrado em 'SDK-ROOT \ build-tools' e, nesta pasta, ele estará na pasta api mais alta (alfa ou beta, recomendo a versão alfa).
Para aqueles de vocês que desejam pular direto aqui, está o arquivo de construção do 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'
}
Você pode criar parte desse arquivo de compilação (acima) na opção de menu: Estrutura de arquivo / projeto A partir daqui, selecione Facetas e clique em 'Android-Gradle (App). A partir daqui, você verá as guias: 'Propriedades', 'Assinatura', 'Sabores', 'Tipos de compilação' e 'Dependências' para este passo a passo. Apenas usaremos 'Assinatura' e 'Tipos de compilação'. Em 'Tipos de compilação' (na seção nome), insira qualquer nome que você deseja identificar sua configuração de tipo de compilação e nos outros 4 campos insira suas informações de armazenamento de chaves (definindo o caminho do armazenamento de chaves como aquele na pasta de aplicativos).
Sob os 'Tipos de compilação', digite o valor 'assembleRelease' no campo de nome, 'Debuggable' deve ser definido como falso, 'Jni Debug Build' deve ser falso, defina 'Run Proguard' como true e 'Zip Align' como true. Isso irá gerar o arquivo de construção, mas não como descrito acima, você precisará adicionar algumas coisas ao arquivo de construção posteriormente. O local do arquivo ProGuard aqui será definido manualmente no arquivo de compilação gradle. (como mostrado acima)
Os contêineres DSL que você precisará adicionar posteriormente são os seguintes:
android {
....
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
....
}
Você também terá que adicionar:
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'
}
observe que esse contêiner DSL acima ('dependências') deve estar na parte inferior do arquivo de configuração, mas não dentro do contêiner DSL do Android. Para criar o contêiner de dependências no menu IntelliJ, selecione: Estrutura de Arquivo / Projeto. A partir daí, selecione Facetas novamente e, em seguida, Android-Gradle (aplicativo). Você verá as mesmas 5 guias mencionadas acima. Selecione a guia 'Dependências' e adicione as dependências necessárias.
Depois de tudo isso, você verá um arquivo de compilação Gradle semelhante ao arquivo na parte superior deste guia. Para criar sua versão com alinhamento zip assinado, você precisará abrir as tarefas Gradle. Você pode acessar essa janela selecionando Exibir / Janelas de ferramentas / Gradle. A partir daqui, você pode clicar duas vezes em 'assembleAssembleRelease. Isso deve gerar seu APK implantável.
Os possíveis problemas que podem ocorrer ao compilar sua versão são (mas não limitados a): O arquivo de construção do Gradle está no lugar errado. Existem dois arquivos de construção Gradle; um na pasta raiz do aplicativo e outro na pasta do aplicativo, na raiz do aplicativo. Você deve usar o último.
Você também pode ter problemas com fiapos. (Nota: o Android Developer Studio é muito melhor para detectar problemas de cotão do que o IntelliJ; você perceberá isso ao tentar gerar um APK assinado nas opções do menu)
Para contornar problemas com fiapos, você precisará colocar o seguinte contêiner DSL dentro do contêiner Android (na parte superior):
android {
....
lintOptions {
abortOnError false
}
....
}
colocar isso dentro do contêiner DSL do Android fará com que um arquivo de erro seja gerado na pasta de construção (diretamente abaixo da pasta do aplicativo), o nome do arquivo deve ser algo como 'lint-results-release-fatal.html'. a classe em que o erro ocorreu. Outro arquivo que será gerado é um arquivo XML que contém o 'ID do problema' associado ao erro de cotão. O nome do arquivo deve ser algo como 'lint-results-release-fatal.xml'. Em algum lugar próximo à parte superior do arquivo, você verá um nó 'issue' dentro do qual verá algo semelhante a 'id = "IDOfYourLintProblem"'
Para corrigir esse problema, abra o arquivo em seu projeto listado no arquivo 'lint-results-assembleRelease-fatal.html' e digite a seguinte linha de código no arquivo Java Class logo acima do nome da classe: @SuppressLint ("IDOfYourLintProblem "). Pode ser necessário importar 'android.annotation.SuppressLint;'
Portanto, seu arquivo de classe java deve aparecer como:
package com.WarwickWestonWright.developers4u.app.CandidateArea;
import android.annotation.SuppressLint;
... other imports
@SuppressLint("IDOfYourLintProblem")
public class SearchForJobsFragment extends Fragment {... rest of your class definition}
Observe que suprimir erros de cotão nem sempre é a melhor IDEA; é melhor alterar seu código que causou os erros de cotão.
Outro problema que pode ocorrer é se você não tiver definido a variável de ambiente para a variável de ambiente Gradle HOME. Essa variável é denominada 'GRADLE_HOME' e deve ser definida como o caminho do diretório inicial da gradle, algo como 'C: \ gradle-1.12' Às vezes, você também pode querer definir a variável de ambiente para 'ANDROID_HOME' e definir como 'SUA- Raiz do SDK \ sdk '
Depois disso, retorne à janela de tarefas Gradle e clique duas vezes no assembleAssembleRelease.
Se tudo der certo, você poderá acessar a pasta app \ build \ apk e encontrar o arquivo APK implementável.