Bunu anlamaya oldukça eğlendim. İşte benim adım adım.
IntelliJ'de bir sınıf oluşturma dosyasının nasıl oluşturulacağı konusunda A'dan Z'ye geçiş (v.13.1.4) Bu gözden geçirme, bir anahtar deposu dosyasının nasıl oluşturulacağını bildiğinizi varsayar. Bu öğreticinin çalışması için anahtar deposu dosyanızın uygulama klasörünüzde bulunması ve zipalign.exe dosyanızın 'SDK-ROOT \ tools' içinde bulunması gerekir. Bu dosya genellikle 'SDK-ROOT \ build-tools' içinde bulunur ve bu klasörün altında en yüksek api klasöründe bulunur (alfa veya beta alfa sürümünü öneririm).
Burada doğrudan atlamak isteyenler için kepçe yapı dosyası.
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'
}
Bu derleme dosyasının bir kısmını (yukarıda) menü seçeneğinden oluşturabilirsiniz: Dosya / Proje Yapısı Buradan Facets'i seçin ve 'Android-Gradle (Uygulama)' yı tıklayın. Buradan sekmeler göreceksiniz: Bu özellikler için 'Özellikler', 'İmzalama', 'Lezzetler', 'Yapı Türleri' ve 'Bağımlılıklar' sadece 'İmzalama' ve 'Yapı Türleri'ni kullanacağız. 'Derleme Türleri'nin altında (ad bölümünde) derleme türü yapılandırmanızı tanımlamak istediğiniz herhangi bir adı girin ve diğer 4 alana anahtar deposu bilgilerinizi girin (anahtar deposu yolunu uygulama klasörünüzün altındaki ayarlayarak).
'Derleme Türleri' altında, ad alanına 'assembleRelease' değerini girin, 'Hata ayıklama' yanlış, 'Jni Hata Ayıklama Derleme' yanlış olmalı, 'Çalıştırma Koruması'nı true' ve 'Zip Align' doğru olarak ayarlayın. Bu derleme dosyası oluşturur, ancak yukarıda gösterildiği gibi değil, derhal derleme dosyasına birkaç şey eklemeniz gerekir. Buradaki ProGuard dosya konumu, sınıf oluşturma dosyasında manuel olarak ayarlanır. (yukarıda gösterildiği gibi)
Daha sonra eklemeniz gereken DSL kapları aşağıdaki gibidir:
android {
....
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
....
}
Ayrıca şunları da eklemeniz gerekecek:
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'
}
Yukarıdaki bu DSL konteynerinin ('bağımlılıklar') yapılandırma dosyasının altında olması, ancak android DSL konteynerinin içinde olmaması gerektiğini unutmayın. IntelliJ menüsünden bağımlılıklar kapsayıcısını oluşturmak için şunu seçin: Dosya / Proje Yapısı. Oradan tekrar Facets'i ve ardından Android-Gradle'ı (uygulama) seçin. Yukarıda belirtilenlerle aynı 5 sekmeyi göreceksiniz. 'Bağımlılıklar' sekmesini seçin ve istediğiniz bağımlılıkları ekleyin.
Tüm bunlar yapıldıktan sonra, bu açıklamanın üstündeki dosyaya benzer bir Gradle derleme dosyası görmelisiniz. İmzalı zip uyumlu sürümünüzü oluşturmak için Gradle görevlerini açmanız gerekir. Görünüm / Araç Pencereleri / Gradle'ı seçerek bu pencereye ulaşabilirsiniz. Buradan 'assembleAssembleRelease öğesini çift tıklayabilirsiniz. Bu, konuşlandırılabilir APK'nızı oluşturmalıdır.
Sürümünüzü derlerken oluşabilecek olası sorunlar şunlardır (ancak bunlarla sınırlı değildir): Gradle derleme dosyanız yanlış yerde. İki Gradle derleme dosyası vardır; biri uygulama kök klasörünüzde ve diğeri uygulama kökünün altındaki uygulama klasöründe. İkincisini kullanmalısınız.
Tüy bırakma problemleriniz de olabilir. (Not: Android Developer Studio, Lint sorunlarını tespit etmede IntelliJ'den çok daha iyidir, menü seçeneklerinden imzalı bir APK oluşturmaya çalışırken bunu göreceksiniz)
Tüysüz problemleri çözmek için, android kabın içine (üstte) aşağıdaki DSL kabını koymanız gerekir:
android {
....
lintOptions {
abortOnError false
}
....
}
Bunu android DSL konteynerinize koymak, derleme dosyasında (doğrudan uygulama klasörünüzün altında) bir hata dosyasının oluşturulmasına neden olur, dosya adı 'lint-results-release-fatal.html' gibi bir dosya olmalıdır. hatanın oluştuğu sınıf. Oluşturulacak başka bir dosya, lint hatasıyla ilişkili 'sorun kimliği' içeren bir XML dosyasıdır. Dosya adı 'lint-results-release-fatal.xml' gibi bir şey olmalıdır. Dosyanın üst kısmına yakın bir yerde, içinde 'id = "IDOfYourLintProblem"' e benzer bir şey göreceğiniz bir düğüm 'sorunu' göreceksiniz.
Bu sorunu gidermek için projenizde 'lint-results-assembleRelease-fatal.html' dosyasında listelenen dosyayı açın ve Java Sınıf dosyasına sınıf adının hemen üzerinde şu kod satırını girin: @SuppressLint ("IDOfYourLintProblem "). 'Android.annotation.SuppressLint;' dosyasını içe aktarmanız gerekebilir.
Bu yüzden java sınıfı dosyanız aşağıdaki gibi görünmelidir:
package com.WarwickWestonWright.developers4u.app.CandidateArea;
import android.annotation.SuppressLint;
... other imports
@SuppressLint("IDOfYourLintProblem")
public class SearchForJobsFragment extends Fragment {... rest of your class definition}
Tiftik hatalarını bastırmanın her zaman en iyi IDEA olmadığını, lif hatalarına neden olan kodunuzu değiştirmek için daha iyi olabileceğinizi unutmayın.
Potansiyel olarak ortaya çıkabilecek başka bir sorun, Gradle HOME ortam değişkeni için ortam değişkenini ayarlamadıysanız. Bu değişken 'GRADLE_HOME' olarak adlandırılır ve gradle ana dizininin yolu olarak ayarlanmalıdır, 'C: \ gradle-1.12' gibi bir şey Bazen 'ANDROID_HOME' için ortam değişkenini ayarlamak için bunu 'YOUR- SDK-Kök \ sdk'
Bu yapıldıktan sonra Gradle görevleri penceresine dönün ve assembleAssembleRelease öğesini çift tıklatın.
Her şey başarılı olursa app \ build \ apk klasörüne gidip konuşlandırılabilir APK dosyanızı bulabilmeniz gerekir.