Android Consumer SDK v2.0.0 迁移

Gradle 和 Android Gradle 插件更新

升级 Gradle 和 Android Gradle 插件版本

首先,升级您的 Gradle 和 Android Gradle 插件版本。此次升级 更好地兼容某些 SDK 依赖项 (包括 Kotlin 1.9),以及一些重要的 bug 修复。

此 SDK 主要版本需要您的 Android 应用项目:

  • Gradle 版本至少为 v7.5.0,但不得高于 v7.6.0。
  • v7.4.x 范围内的 Android Gradle 插件 (AGP) 版本。

您可以以更高版本的插件为目标;但您可以运行 或某些新功能可能无法正常使用。

要修改 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 库支持

来源

由于 SDK 的最低 API 级别为 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 可能会发出以下警告 关于文件删除:

  • build.gradle 文件中的 useProguard true 使用情况
  • gradle.properties 文件中的 android.enableR8=false 使用情况

移除这些行通常可以解决此类问题。

从 Kotlin 1.6 迁移到 1.9

第 1 步 - 迁移到 Kotlin Gradle 插件 1.9.0

来源

更新应用顶级模块中的 Kotlin Gradle 插件版本 build.gradle 文件中。请务必添加 org.jetbrains.kotlin:kotlin-gradle-plugin

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

来源

在应用的 build.gradle 文件中将 kotlin-stblib 升级到 1.9.0。

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

请务必移除对 kotlin-stdlib-jdk7kotlin-stdlib-jdk8。这两个依赖项已合并到 kotlin-stdlib,以 Kotlin 开头 1.8.0.