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

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

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

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

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

  • 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, แหล่งที่มา

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 1.9.0

แหล่งที่มา

อัปเดตเวอร์ชันปลั๊กอิน Kotlin Gradle ในไฟล์ build.gradle ของโมดูลระดับบนสุดของแอปพลิเคชัน โปรดตรวจสอบว่าได้เพิ่ม org.jetbrains.kotlin:kotlin-gradle-plugin ในการอ้างอิงจากบล็อก 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 ออก เราได้รวมทรัพยากร Dependency ทั้ง 2 รายการไว้ใน kotlin-stdlib ตั้งแต่ Kotlin 1.8.0 เป็นต้นไป