나는 이것을 알아내는 것이 꽤 재미있었습니다. 여기 나의 연습이 있습니다.
IntelliJ (v.13.1.4)에서 gradle 빌드 파일을 만드는 방법에 대한 A-Z 연습이 연습에서는 키 저장소 파일을 만드는 방법을 알고 있다고 가정합니다. 이 튜토리얼이 작동하려면 키 저장소 파일이 앱 폴더에 있고 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 (App)을 클릭하십시오. 여기에서이 연습을위한 '속성', '서명', 'Flavors', '건물 유형'및 '종속성'탭이 표시됩니다. '서명'및 '건물 유형'만 사용할 것입니다. 이름 섹션의 '빌드 유형'아래에서 빌드 유형 구성을 식별하려는 이름을 입력하고 다른 4 개의 필드에 키 저장소 정보를 입력하십시오 (키 저장소 경로를 앱 폴더 아래에 설정).
'Build Types'에서 이름 필드에 'assembleRelease'값을 입력하십시오. 'Debuggable'은 false로 설정되어야하고, 'Jni Debug Build'는 false로 설정되어야합니다. '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 컨테이너 ( '종속성')는 구성 파일의 맨 아래에 있지만 Android DSL 컨테이너 안에는 안됩니다. IntelliJ 메뉴에서 종속성 컨테이너를 빌드하려면 파일 / 프로젝트 구조를 선택하십시오. 거기에서 다시 Facets를 선택한 다음 Android-Gradle (app)을 선택하십시오. 위에서 언급 한 것과 동일한 5 개의 탭이 표시됩니다. '종속성'탭을 선택하고 필요한 종속성을 추가하십시오.
이 작업을 모두 마치면이 연습의 맨 위에있는 파일과 비슷한 Gradle 빌드 파일이 표시됩니다. 서명 된 Zip 정렬 릴리스를 빌드하려면 Gradle 태스크를 열어야합니다. View / Tool Windows / Gradle을 선택하여이 창으로 이동할 수 있습니다. 여기에서 'assembleAssembleRelease를 두 번 클릭하십시오. 배포 가능한 APK를 생성해야합니다.
릴리스를 컴파일 할 때 발생할 수있는 잠재적 문제는 다음과 같습니다 (단, 이에 한하지 않음). Gradle 빌드 파일이 잘못된 위치에 있습니다. 두 개의 Gradle 빌드 파일이 있습니다. 하나는 응용 프로그램 루트 폴더에 있고 다른 하나는 응용 프로그램 루트 아래의 응용 프로그램 폴더에 있습니다. 후자를 사용해야합니다.
보푸라기 문제가있을 수도 있습니다. (참고 : Android Developer Studio는 IntelliJ보다 Lint 문제를 발견하는 데 훨씬 좋습니다. 메뉴 옵션에서 서명 된 APK를 생성하려고 할 때이를 알 수 있습니다)
보푸라기 문제를 해결하려면 다음 DSL 컨테이너를 안드로이드 컨테이너 안에 넣으십시오 (맨 위).
android {
....
lintOptions {
abortOnError false
}
....
}
이것을 안드로이드 DSL 컨테이너에 넣으면 빌드 폴더 (앱 폴더 바로 아래)에 오류 파일이 생성됩니다. 파일 이름은 'lint-results-release-fatal.html'과 같아야합니다. 에러가 발생한 클래스 생성 될 다른 파일은 lint 오류와 관련된 '문제 ID'가 포함 된 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'이며 'C : \ gradle-1.12'와 같이 gradle 홈 디렉토리의 경로를 설정해야합니다. 때때로 'ANDROID_HOME'에 대한 환경 변수를 'YOUR- SDK-Root \ sdk '
이 작업이 끝나면 Gradle 작업 창으로 돌아가서 assembleAssembleRelease를 두 번 클릭하십시오.
모두 성공하면 app \ build \ apk 폴더로 이동하여 배포 가능한 APK 파일을 찾을 수 있어야합니다.