การย้ายข้อมูลสำหรับ Android Consumer SDK v2.0.0

การอัปเดต Gradle และปลั๊กอิน Android Gradle

อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle

ก่อนอื่น ให้อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle การอัปเกรดนี้รวมถึงความเข้ากันได้ที่ดีขึ้นกับการขึ้นต่อกันของ SDK บางรายการ (รวมถึง Kotlin 1.9) ตลอดจนการแก้ไขข้อบกพร่องที่สำคัญบางอย่าง

SDK เวอร์ชันหลักนี้ต้องใช้ทรัพยากร Dependency เวอร์ชันต่อไปนี้สำหรับโปรเจ็กต์แอปพลิเคชัน Android

  • Gradle เวอร์ชัน v7.5.0 เป็นอย่างน้อย แต่ไม่สูงกว่า v7.6.0
  • ปลั๊กอิน Android Gradle (AGP) เวอร์ชันในช่วง v7.4.x

คุณสามารถกำหนดเป้าหมายปลั๊กอินเวอร์ชันที่สูงกว่าได้ แต่อาจพบคำเตือนการเลิกใช้งาน หรือฟีเจอร์ใหม่บางอย่างอาจไม่ทำงาน

หากต้องการแก้ไขเวอร์ชัน Gradle ให้แก้ไขบรรทัดในไฟล์ /gradle/wrapper/gradle-wrapper.properties ของโปรเจ็กต์

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip

หากต้องการแก้ไขเวอร์ชันปลั๊กอิน Android Gradle ให้แก้ไขไฟล์ build.gradle ที่มีบล็อก buildscript เช่น

buildscript {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.1'
    }
}

การย้ายข้อมูลการรองรับไลบรารี Java 7 ไปยัง Java 8

ขั้นตอนที่ 1 - เปิดใช้การรองรับไลบรารี Java 8

แหล่งที่มา

เนื่องจากระดับ API ขั้นต่ำของ SDK คือ 23 และเวอร์ชัน AGP ที่จำเป็นคือ 7.4 ขึ้นไป การกำหนดค่าจึงแตกต่างจากเอกสารประกอบแหล่งที่มาที่กล่าวถึงเล็กน้อย

buildscript {

    repositories {
        google()
        mavenCentral()
        jcenter()
        maven {
            url = uri("https://storage.googleapis.com/r8-releases/raw")
        }
    }
    dependencies {
        classpath 'com.android.tools:r8:8.0.46'
        classpath 'com.android.tools.build:gradle:7.4.1'
    }
}

android {
    compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}

ขั้นตอนที่ 2 - ย้ายข้อมูลจาก Proguard หรือ Dexguard ไปยัง R8

R8, source

AGP v7.4 ขึ้นไปใช้ R8 เป็นเครื่องมือย่อขนาด การสร้างความสับสน และการเพิ่มประสิทธิภาพเริ่มต้นสำหรับไบนารี คุณจึงไม่จำเป็นต้องดำเนินการใดๆ เป็นพิเศษในจุดนี้

หากย้ายข้อมูลโปรเจ็กต์จาก AGP 4.0 ขึ้นไป AGP อาจแสดงคำเตือนต่อไปนี้เกี่ยวกับการนำไฟล์ออก

  • การใช้งาน useProguard true ในไฟล์ build.gradle
  • การใช้งาน android.enableR8=false ในไฟล์ gradle.properties

การนำบรรทัดเหล่านี้ออกมักจะช่วยแก้ปัญหาดังกล่าวได้

การย้ายข้อมูล Kotlin 1.6 เป็น 1.9

ขั้นตอนที่ 1 - ย้ายข้อมูลไปยัง Kotlin Gradle Plugin 1.9.0

แหล่งที่มา

อัปเดตเวอร์ชันปลั๊กอิน Kotlin Gradle ในไฟล์ build.gradle ของโมดูลระดับบนสุดของแอปพลิเคชัน อย่าลืมเพิ่ม org.jetbrains.kotlin:kotlin-gradle-plugin ในทรัพยากร Dependency จากบล็อก buildscript ในกรณีที่ไม่มี

buildscript {
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
  }
}

คุณต้องย้ายข้อมูลแอปพลิเคชันจาก Kotlin-synthetics ในกรณีที่มาจาก Kotlin Gradle Plugin 1.6.X หรือ 1.7.X ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำในการย้ายข้อมูลอย่างเป็นทางการ

ขั้นตอนที่ 2 - อัปเกรด kotlin-stdlib เป็น 1.9.0

แหล่งที่มา

อัปเกรด kotlin-stblib เป็น 1.9.0 ในไฟล์ build.gradle ของแอปพลิเคชัน

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}

โปรดนำการอ้างอิงถึง kotlin-stdlib-jdk7 หรือ kotlin-stdlib-jdk8 ออก ทั้ง 2 ทรัพยากร Dependency ได้รวมเข้ากับ kotlin-stdlib ตั้งแต่ Kotlin 1.8.0 เป็นต้นไป