Tôi đã có khá nhiều niềm vui để tìm ra điều này. Đây là hướng dẫn của tôi.
Hướng dẫn từ A đến Z về cách tạo tệp xây dựng lớp trong IntelliJ (c.13.1.4) Hướng dẫn này giả định rằng bạn biết cách tạo tệp kho khóa. Để hướng dẫn này hoạt động, bạn sẽ cần tệp kho khóa của bạn được đặt trong thư mục ứng dụng của bạn và bạn sẽ cần phải có tệp zipalign.exe của mình trong 'SDK-ROOT \ tools'. Tệp này thường được tìm thấy trong 'SDK-ROOT \ build-tools' và trong thư mục này, nó sẽ nằm trong thư mục api cao nhất (alpha hoặc beta tôi khuyên dùng phiên bản alpha).
Đối với những người muốn nhảy thẳng vào đây là tập tin xây dựng lớp.
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'
}
Bạn có thể xây dựng một phần của tệp xây dựng này (ở trên) từ tùy chọn menu: Cấu trúc tệp / dự án Từ đây chọn Facets và nhấp vào 'Android-Gradle (Ứng dụng). Từ đây, bạn sẽ thấy các tab: 'Thuộc tính', 'Ký', 'Hương vị', 'Loại xây dựng' và 'Phụ thuộc' cho hướng dẫn này, chúng tôi sẽ chỉ sử dụng 'Ký' và 'Kiểu xây dựng'. Trong 'Loại bản dựng' (trong phần tên), hãy nhập bất kỳ tên nào bạn muốn xác định cấu hình loại bản dựng và trong 4 trường khác, nhập thông tin kho khóa của bạn (đặt đường dẫn kho khóa theo tên trong thư mục ứng dụng của bạn).
Trong phần 'Kiểu xây dựng', nhập giá trị 'assemblybleRelease' vào trường tên, 'Debuggable' nên được đặt thành false, 'Jni Debug Build' nên sai, đặt 'Chạy Proguard' thành true và 'Zip Align' thành true. Điều này sẽ tạo tệp xây dựng, nhưng không được mô tả ở trên, bạn sẽ phải thêm một vài thứ vào tệp xây dựng sau đó. Vị trí tệp ProGuard ở đây sẽ được đặt thủ công trong tệp xây dựng lớp. (như mô tả ở trên)
Các container DSL bạn sẽ phải thêm sau đó như sau:
android {
....
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
....
}
Bạn cũng sẽ phải thêm:
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'
}
lưu ý bộ chứa DSL này ở trên ('phụ thuộc') phải ở dưới cùng của tệp cấu hình nhưng không nằm trong bộ chứa DSL của Android. Để xây dựng bộ chứa phụ thuộc từ menu IntelliJ, chọn: Cấu trúc tệp / dự án. Từ đó chọn Facets một lần nữa và sau đó là Android-Gradle (ứng dụng). Bạn sẽ thấy 5 tab tương tự như đã đề cập ở trên. Chọn tab 'Phụ thuộc' và thêm các phụ thuộc bạn yêu cầu.
Sau khi hoàn thành tất cả những điều này, bạn sẽ thấy tệp xây dựng Gradle tương tự như tệp ở đầu trang này. Để xây dựng bản phát hành được căn chỉnh zip đã ký, bạn sẽ cần mở các tác vụ Gradle. Bạn có thể đến cửa sổ này bằng cách chọn View / Tool Windows / Gradle. Từ đây, bạn có thể nhấp đúp vào 'assemblybleAssembleRelease. Điều này sẽ tạo APK có thể triển khai của bạn.
Các vấn đề tiềm ẩn có thể xảy ra khi biên dịch bản phát hành của bạn là (nhưng không giới hạn ở): Tệp bản dựng Gradle của bạn nằm sai vị trí. Có hai tập tin xây dựng Gradle; một trong thư mục gốc ứng dụng của bạn và một trong thư mục ứng dụng dưới thư mục gốc của ứng dụng. Bạn phải sử dụng cái sau.
Bạn cũng có thể có vấn đề lint. (Lưu ý: Android Developer Studio tốt hơn nhiều trong việc phát hiện các sự cố Lint so với IntelliJ, bạn sẽ nhận thấy điều này khi cố gắng tạo APK có chữ ký từ các tùy chọn menu)
Để giải quyết các vấn đề khó khăn, bạn sẽ cần đặt bộ chứa DSL sau vào bộ chứa Android (ở trên cùng):
android {
....
lintOptions {
abortOnError false
}
....
}
Đặt cái này vào trong bộ chứa DSL Android của bạn sẽ khiến một tệp lỗi được tạo trong thư mục bản dựng (ngay trong thư mục ứng dụng của bạn), tên tệp phải là một cái gì đó như 'lint-results-release-fatal.html', tệp này sẽ cho bạn biết lớp xảy ra lỗi. Một tệp khác sẽ được tạo là một tệp XML có chứa 'ID vấn đề' liên quan đến lỗi lint. Tên tệp phải là một cái gì đó như 'lint-results-release-fatal.xml'. Ở đâu đó gần đầu tập tin, bạn sẽ thấy một nút 'vấn đề' bên trong mà bạn sẽ thấy một cái gì đó tương tự như 'id = "IDOfYourLintPro Hiệu"'
Để khắc phục sự cố này, hãy mở tệp trong dự án của bạn được liệt kê trong tệp 'lint-results-assemblybleRelease-fatal.html' và nhập dòng mã sau vào tệp Lớp Java ngay phía trên tên lớp: @SuppressLint ("IDOfYourLintPro Hiệu "). Bạn có thể phải nhập 'android.annotation.SuppressLint;'
Vì vậy, tệp lớp java của bạn sẽ xuất hiện như sau:
package com.WarwickWestonWright.developers4u.app.CandidateArea;
import android.annotation.SuppressLint;
... other imports
@SuppressLint("IDOfYourLintProblem")
public class SearchForJobsFragment extends Fragment {... rest of your class definition}
Lưu ý rằng việc loại bỏ lỗi lint không phải lúc nào cũng là IDEA tốt nhất, bạn có thể nên thay đổi mã gây ra lỗi lint.
Một vấn đề khác có khả năng có thể xảy ra là nếu bạn chưa đặt biến môi trường cho biến môi trường Gradle HOME. Biến này được đặt tên là 'GRADLE_HOME' và nên được đặt đường dẫn của thư mục nhà lớp, giống như 'C: \ gradle-1.12' Đôi khi, bạn cũng có thể muốn đặt biến môi trường cho 'ANDROID_HOME' đặt này thành 'CỦA BẠN- Root-Root \ sdk '
Sau khi hoàn thành, quay trở lại cửa sổ nhiệm vụ Gradle và nhấp đúp vào tệp lắp rápAssembleRelease.
Nếu tất cả đều thành công, bạn sẽ có thể truy cập ứng dụng thư mục \ build \ apk và tìm tệp APK có thể triển khai của mình.