AXV

Gradle tasks va xatolar

Gradle lifecycle, tasks, gradlew buyruqlari, build xatolarini o'qish

10-sinfAdvanced Android6-hafta · 16-dars

Bugun nimalarni o'rganamiz?

Gradle hayotiy sikli

3 bosqich

gradlew buyruqlari

Tasks

Xatolarni aniqlash

Build oynasi va log

Takrorlash

implementation("a:b:1.0") da 1.0 nima?

Format: guruh:nom:versiya.
01

Gradle hayotiy sikli

3 bosqich

Gradle bosqichlari

Initialization Configuration Execution APK / AAB Har bosqich o'z xatosini beradi

Bosqichlar va fayllar


// 1. Initialization: settings.gradle.kts
include(":app", ":core")

// 2. Configuration: app/build.gradle.kts
dependencies {
    implementation("io.coil-kt:coil-compose:2.3.0")
}

// 3. Execution: terminalda
// ./gradlew assembleDebug
  
Task — Gradle bajaradigan eng kichik ish birligi: masalan, «rasmlarni siq» yoki «kodni tekshir».

Mini-test

build.gradle fayllari qaysi bosqichda o'qiladi?

Configuration: qaysi kutubxona va versiya kerakligi rejalanadi.
02

gradlew buyruqlari

Tasks

Odatiy ketma-ketlik

clean assembleDebug test bundleRelease Tozalash, yig'ish, sinash, nashr

Buyruqlar


./gradlew tasks
./gradlew clean
./gradlew assembleDebug
./gradlew test
./gradlew bundleRelease
  
Windows da gradlew.bat clean yoki .\gradlew clean yoziladi. APK — to'g'ridan-to'g'ri o'rnatiladigan fayl; AAB — Play ga yuklanadigan format.

Mini-test

Google Play uchun qaysi buyruq AAB yasaydi?

bundleRelease AAB tayyorlaydi.
03

Xatolarni aniqlash

Build oynasi va log

Xatoni topish

Birinchiqizil qator Xato turi --stacktrace Tuzatishva Sync Eng birinchi xabar ko'pincha asosiy sabab

Kengaytirilgan log


./gradlew assembleDebug --stacktrace
./gradlew assembleDebug --info
./gradlew app:dependencies
  
Qo'llanmaga ko'ra, Sync Now bosilmasa o'zgarishlar kuchga kirmaydi. Doim aniq xato matnini o'qing, taxmin qilmang.

Mini-test

Xato chiqqanda birinchi nimaga qaraysiz?

Birinchi xabar odatda asosiy sabab.

Studio tugmasi va terminal

Faqat tugma

Qaysi task ishlaganini ko'rmaysiz, avtomatlashtirib bo'lmaydi
VS

Terminal

Aniq buyruq, takrorlanadi, CI da ishlatiladi

gradlew bir xil natija beradi.

Atamalar. Bosing

Task

bosing

Gradle ning eng kichik ish birligi

APK

bosing

To'g'ridan-to'g'ri o'rnatiladigan ilova fayli

AAB

bosing

Google Play uchun App Bundle

Wrapper

bosing

Loyihaga mos Gradle versiyasini kafolatlaydi

Xatoni tuzatish

1. Toping

Build oynasidagi birinchi qizil qator.

2. Tuzating

Fayl, qator va sababni toping.

3. Qayta yig'ing

Sync Now va assembleDebug.

Asosiy buyruqlar

BuyruqNima qiladiQachon
cleaneski fayllarni o'chiradiishlamay qolsa
assembleDebugDebug APKsinash uchun
bundleReleaseRelease AABPlay ga yuklash
testunit testlarkod o'zgargach
taskstasklar ro'yxatinima borligini bilish

Pastga bosing: tekshirish

Task ni ishga tushirish

  1. Terminalni loyiha ildizida oching.
  2. ./gradlew tasks bilan ro'yxatni ko'ring.
  3. ./gradlew clean assembleDebug ni ishga tushiring.

Xatoni tuzatish


dependencies {
    implementaton("io.coil-kt:coil-compose:2.3.0")
}
  

Xatoni tuzatish


dependencies {
    implementation("io.coil-kt:coil-compose:2.3.0")
}
  

Gradle raqamlarda

0
ta bosqich: Initialization, Configuration, Execution
0
ta asosiy buyruq: clean, assembleDebug, bundleRelease
0
gacha kichikroq AAB hajmi (qo'llanma)

AAB hajmi qo'llanmaga ko'ra 35% gacha kamayishi mumkin.

Amaliy topshiriq 20 daqiqa

OsonBosqichni toping: Xato: settings.gradle da yozilgan modul papkasi topilmadi. Qaysi bosqichda xato chiqdi?
OsonBuyruqni tanlang: Ilovani sinash uchun APK yasash, Google Play uchun AAB yasash va eski fayllarni tozalash buyruqlarini yozing.
O'rtaXatoni tuzating: implementaton("io.coil-kt:coil-compose:2.3.0") yozilgan. Xatoning sababi va tuzatish?
O'rtaTasklar ro'yxati: tasks ro'yxatidan assembleDebug va bundleRelease vazifasini yozing.
QiyinAtaylab xato: Kutubxona versiyasini ataylab noto'g'ri yozing (coil-compose:2.3.99), ./gradlew assembleDebug --stacktrace ishga tushiring va xato matnidan sababni toping.
BonusDaraxt: Daraxtdan bitta ichki kutubxonani toping.

Dars xulosasi

Hayotiy sikl

Initialization, Configuration, Execution.

Buyruqlar

clean, assembleDebug, bundleRelease, tasks.

Xatolar

Birinchi qizil qator, --stacktrace, --info.

Uyga vazifa: Gradle buyruqlari va xatoni topish.

Keyingi dars: Dependency turlari

implementation, api, compileOnly

6-hafta · 17-dars