Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

导入SDK

使用以 Android 本地仓库的形式导入本地依赖项。

SDK 以 zip 包的形式提供,下载后,会得到一份 Sample 源码,以及 repo.zip. 将解压的 repo 文件夹放到工程根目录中。repo 包含 SDK 所需的依赖库 【禁止调整包内文件的结构与命名,将会导致集成依赖不正常】

环境要求

名称版本
Java11
AGP4.2.0 +
Gradle6.7.1 +

支持的最低系统版本为 5.0(API 21):

minSdkVersion 21

目标 Android SDK 版本:

targetSdkVersion 30

环境配置

Android Studio 的代码库配置在 Gradle 插件 7.0 以下版本、7.0 及以上版本有所不同。请根据您当前的 Gradle 插件版本,选择对应的配置过程。

7.0 以下版本

  1. 打开根目录下的 build.gradle(Project 视图下)添加如下配置。
groovy
buildscript {
    repositories {

        // 本地仓库
        maven { url "${rootProject.getRootDir()}/repo" }

        //Huawei官方maven仓库,华为离线推送
        maven { url 'https://developer.huawei.com/repo/' }

        //个推官方maven仓库,个推离线推送
        maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }

        //荣耀官方maven仓库,荣耀离线推送
        maven { url 'https://developer.hihonor.com/repo/' }

        maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
        maven { url 'https://jitpack.io' }// 可选配置

        ...
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:{version}' // 最低版本要求 4.2.0
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:{version}' // 最低版本要求 1.6.20
        // 华为离线推送
        classpath 'com.huawei.agconnect:agcp:1.6.0.300'
    }
}

allprojects {
    repositories {
        // 本地仓库
        maven { url "${rootProject.getRootDir()}/repo" }

        //Huawei官方maven仓库,华为离线推送
        maven { url 'https://developer.huawei.com/repo/' }

        //个推官方maven仓库,个推离线推送
        maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }

        //荣耀官方maven仓库,荣耀离线推送
        maven { url 'https://developer.hihonor.com/repo/' }

        maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
        maven { url 'https://jitpack.io' }// 可选配置

        ...
    }
}
  1. 在应用的 build.gradle 中,添加编译配置项和 SDK 依赖
groovy
android {
    buildToolsVersion "30.0.3"

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29

        manifestPlaceholders = [
                GETUI_APPID : "请填写您的个推APP ID",
                MEIZU_APPKEY: "请填写您的魅族APP KEY",
                MEIZU_APPID : "请填写您的魅族APP ID",
                AMAP_API_KEY: "请填写您的高德API_KEY",
                VIVO_APP_ID : "请填写您的VIVO APP_ID",
                VIVO_API_KEY: "请填写您的VIVO API_KEY",
        ]
    }

    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

    buildFeatures {
        viewBinding true
        dataBinding true
    }
}

dependencies {
    ...
    // repo/com/kingsoft/kim/sdk/woasdk下目录文件名即为版本号, 使用版本号替换$latestVersion
    api 'com.kingsoft.kim.sdk:woasdk:$latestVersion' 
    api 'com.wps.woa.sdk:image-glide4wrap:1.0.13'
    // 以下按需依赖不同厂商的推送SDK
    api 'com.wps.woa.sdk:pushHuawei:0.0.7'
    api 'com.wps.woa.sdk:pushOppo:0.0.7'
    api 'com.wps.woa.sdk:pushVivo:0.0.7'
    api 'com.wps.woa.sdk:pushXiaomi:0.0.9'
    api 'com.wps.woa.sdk:pushHonor:0.0.4'
    api 'com.wps.woa.sdk:pushMeizu:0.0.6'
    api 'com.wps.woa.sdk:pushGetui:0.0.4'
}
  1. 在项目中使用 androidx 库
groovy
android.useAndroidX=true
android.enableJetifier=true

7.0 及以上版本

  1. 打开根目录下的 settings.gradle(Project 视图下)添加如下配置。
groovy
pluginManagement {
    repositories {
        // 本地仓库
        maven { url "${rootProject.getRootDir()}/repo" }

        //Huawei官方maven仓库,华为离线推送
        maven { url 'https://developer.huawei.com/repo/' }

        //个推官方maven仓库,个推离线推送
        maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }

        //荣耀官方maven仓库,荣耀离线推送
        maven { url 'https://developer.hihonor.com/repo/' }

        maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
        maven { url 'https://jitpack.io' }// 可选配置
        ...
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        // 本地仓库
        maven { url "${rootProject.getRootDir()}/repo" }

        //Huawei官方maven仓库,华为离线推送
        maven { url 'https://developer.huawei.com/repo/' }

        //个推官方maven仓库,个推离线推送
        maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }

        //荣耀官方maven仓库,荣耀离线推送
        maven { url 'https://developer.hihonor.com/repo/' }

        maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
        maven { url 'https://jitpack.io' }// 可选配置
        ...
    }
}
  1. 打开根目录下的 build.gradle(Project 视图下)添加如下配置。
groovy
buildscript {
    dependencies {
        // 增加Android Gradle插件版本号配置,{version}为实际的Gradle插件版本号
        classpath 'com.android.tools.build:gradle:{version}'
        // 华为离线推送
        classpath 'com.huawei.agconnect:agcp:1.6.0.300'
        ...
    }
}
plugins {
    id 'org.jetbrains.kotlin.android' version '{version}' apply false // kotlin-gradle插件版本,与相应Gradle版本匹配
    ...
}
  1. 在应用的 build.gradle 中,添加编译配置项和 SDK 依赖
groovy
plugins {
    ...
    // 华为离线推送插件
    id 'com.huawei.agconnect'
}

android {

    defaultConfig {
        ...
        minSdk 21
        targetSdk 29

        manifestPlaceholders = [
                GETUI_APPID : "请填写您的个推APP ID",
                MEIZU_APPKEY: "请填写您的魅族APP KEY",
                MEIZU_APPID : "请填写您的魅族APP ID",
                AMAP_API_KEY: "请填写您的高德API_KEY",
                VIVO_APP_ID : "请填写您的VIVO APP_ID",
                VIVO_API_KEY: "请填写您的VIVO API_KEY",
        ]
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        viewBinding true
        dataBinding true
    }
}

dependencies {
    ...
    // repo/com/kingsoft/kim/sdk/woasdk下目录文件名即为版本号, 使用版本号替换$latestVersion
    api 'com.kingsoft.kim.sdk:woasdk:$latestVersion' 
    api 'com.wps.woa.sdk:image-glide4wrap:1.0.13'
    // 以下按需依赖不同厂商的推送SDK
    api 'com.wps.woa.sdk:pushHuawei:0.0.7'
    api 'com.wps.woa.sdk:pushOppo:0.0.7'
    api 'com.wps.woa.sdk:pushVivo:0.0.7'
    api 'com.wps.woa.sdk:pushXiaomi:0.0.9'
    api 'com.wps.woa.sdk:pushHonor:0.0.4'
    api 'com.wps.woa.sdk:pushMeizu:0.0.6'
    api 'com.wps.woa.sdk:pushGetui:0.0.4'
}
  1. 在项目中使用 androidx 库
groovy
android.useAndroidX=true
android.enableJetifier=true

混淆配置

groovy
##---------------start: proguard configuration for meizu push  ----------
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }
##---------------end: proguard configuration for meizu push  ----------

# 小米推送
-keep class com.wps.woa.sdk.push.manufactory.xiaomi.XiaomiMessageReceiver {*;}
#可以防止一个误报的 warning 导致无法成功编译,如果编译使用的 Android 版本是 23
-dontwarn com.xiaomi.push.**

# 华为推送
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}

# OPPO推送
-keep public class * extends android.app.Service
-keep class com.heytap.msp.** {*;}

# VIVO推送
-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*;}
-keep class com.vivo.vms.**{*;}
-keep class com.wps.woa.sdk.push.manufactory.vivo.VivoMessageReceiver {*;}

#amap 3dmap
-keep class com.amap.api.** {*;}
-keep class com.autonavi.** {*;}

#location
-keep class com.amap.api.location.** {*;}
-keep class com.amap.api.fence.** {*;}
-keep class com.autonavi.aps.amapapi.model.** {*;}
#amap search
-keep class com.amap.api.services.** {*;}

# kotlin 相关
-dontwarn kotlin.**
-keep class kotlin.** {*;}
-keep interface kotlin.** {*;}
-keepclassmembers class kotlin.Metadata {
    public <methods>;
}
-keepclasseswithmembers @kotlin.Metadata class * {*;}
-keepclassmembers class **.WhenMappings {
    <fields>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
-keep class kotlinx.** {*;}
-keep interface kotlinx.** {*;}
-dontwarn kotlinx.**
-dontnote kotlinx.serialization.SerializationKt
-keep class org.jetbrains.** {*;}
-keep interface org.jetbrains.** {*;}
-dontwarn org.jetbrains.**

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
  @com.google.gson.annotations.SerializedName <fields>;
}

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

##---------------End: proguard configuration for Gson  ----------