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

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

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

ก่อนอื่นให้อัปเกรดเวอร์ชันปลั๊กอิน Gradle และ Android Gradle การอัปเกรดนี้ มีความเข้ากันได้ที่ดีขึ้นกับทรัพยากร Dependency ของ 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, แหล่งที่มา

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 ลงในทรัพยากร Dependency จากบล็อก Buildscript แล้วเผื่อไว้ในกรณีที่ขาดหายไป

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

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

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

แหล่งที่มา

อัปเกรด kotlin-stblib เป็น 1.9.0 ในไฟล์ application create.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