私はこれを理解するのがとても楽しかったです。これが私のウォークスルーです。
IntelliJ (v.13.1.4) で gradle ビルド ファイルを作成する方法に関する A から Z のウォークスルー このウォークスルーは、キーストア ファイルの作成方法を知っていることを前提としています。このチュートリアルを機能させるには、キーストア ファイルをアプリ フォルダーに配置し、zipalign.exe ファイルを「SDK-ROOT\tools」に配置する必要があります。このファイルは通常、「SDK-ROOT\build-tools」にあり、このフォルダーの下の最上位の api フォルダーにあります (alpha または beta アルファ バージョンをお勧めします)。
ここに直接ジャンプしたい人のために、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'
}
このビルド ファイル (上記) の一部をメニュー オプションからビルドできます: File/Project Structure ここから Facets を選択し、「Android-Gradle(App)」をクリックします。ここから、「プロパティ」、「署名」、「フレーバー」、「ビルド タイプ」、「依存関係」のタブが表示されます。このウォークスルーでは、「署名」と「ビルド タイプ」のみを使用します。[ビルド タイプ] (名前セクション) の下に、ビルド タイプ構成を識別する任意の名前を入力し、他の 4 つのフィールドにキーストア情報を入力します (キーストア パスをアプリ フォルダーの下のものに設定します)。
「Build Types」の下で、値「assemblyRelease」を名前フィールドに入力します。「Debuggable」は false に設定し、「Jni Debug Build」は false に設定し、「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 コンテナー (「依存関係」) は、構成ファイルの下部にある必要がありますが、Android DSL コンテナー内にある必要はありません。IntelliJ メニューから依存関係コンテナーをビルドするには、ファイル/プロジェクト構造を選択します。そこから再び Facets を選択し、次に Android-Gradle(app) を選択します。上記と同じ 5 つのタブが表示されます。[依存関係] タブを選択し、必要な依存関係を追加します。
これがすべて完了すると、このウォークスルーの冒頭にあるファイルと同様の Gradle ビルド ファイルが表示されます。署名済みの zip アライメント リリースをビルドするには、Gradle タスクを開く必要があります。View/Tool Windows/Gradle を選択すると、このウィンドウにアクセスできます。ここから、「assemblyAssembleRelease」をダブルクリックします。これにより、デプロイ可能な APK が生成されます。
リリースをコンパイルする際に発生する可能性のある問題は次のとおりです (ただし、これらに限定されません): Gradle ビルド ファイルが間違った場所にある。2 つの Gradle ビルド ファイルがあります。1 つはアプリケーション ルート フォルダーにあり、もう 1 つはアプリケーション ルートの下のアプリ フォルダーにあります。後者を使用する必要があります。
糸くずの問題もあるかもしれません。(注: Android Developer Studio は、IntelliJ よりも Lint の問題を見つけるのにはるかに優れています。メニュー オプションから署名付き APK を生成しようとすると、これに気付くでしょう)
lint の問題を回避するには、次の DSL コンテナーを Android コンテナー内 (上部) に配置する必要があります。
android {
....
lintOptions {
abortOnError false
}
....
}
これを android 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}
lint エラーを抑制することが常に最善のアイデアであるとは限らないことに注意してください。lint エラーの原因となったコードを変更した方がよい場合もあります。
潜在的に発生する可能性のある別の問題は、Gradle HOME 環境変数の環境変数を設定していない場合です。この変数は「GRADLE_HOME」という名前で、「C:\gradle-1.12」のような gradle ホーム ディレクトリのパスを設定する必要があります。場合によっては、「ANDROID_HOME」の環境変数を「YOUR-」に設定することもできます。 SDK-Root\sdk'
これが完了したら、Gradle タスク ウィンドウに戻り、assemblyAssembleRelease をダブルクリックします。
すべてが成功した場合、フォルダ app\build\apk に移動して、デプロイ可能な APK ファイルを見つけることができるはずです。