快速集成:Gradle / Maven 配置与手动集成步骤

集成 SDK 这事儿,说难不难,说简单吧……我见过太多人卡在第一步。配置文件写错一个版本号,或者漏了远程仓库地址,然后花半天怀疑人生。

咱们直接来干货。

3.1 Gradle 集成(Android)

如果你用的是 Android Studio,Gradle 是首选。我个人习惯在公司内部仓库里统一管理依赖版本,这样团队不会出现“我本地能编译,你拉下来就报错”的诡异情况。

先说明: 以下配置假设你已经在根级 build.gradle 里配置了阿里云或 JitPack 等远程仓库。如果还没配置,先去加一行 mavenCentral()。

步骤一:在项目级 build.gradle(或 settings.gradle)添加仓库

// 项目级 build.gradle
allprojects {
    repositories {
        google()
        mavenCentral()
        // 如果使用私有仓库
        maven { url 'https://your-private-repo.com/releases' }
    }
}

以前有个同事,忘了在 settings.gradle 里加仓库,编译时一直报 404。我帮他看 log,说“你看看仓库地址对不对”,他还硬说配对了。最后发现是 gradle 版本升级后仓库声明位置变了。嗯,细节里藏魔鬼。

步骤二:在模块级 build.gradle 添加依赖

dependencies {
    implementation 'com.privacy.sdk:privacy-share:2.1.0'
    // 如果 SDK 依赖其他库,看情况 exclude 或强制版本
    implementation ('com.privacy.sdk:privacy-share:2.1.0') {
        exclude group: 'com.squareup.okhttp3', module: 'okhttp'
    }
}
注意: 千万别同时依赖两个版本冲突的第三方库。我曾因为 okhttp 版本不一致,导致 SDK 内部加密通信失败,debug 了两天。排查手段?用 ./gradlew :app:dependencies --scan 查看依赖树。

3.2 Maven 集成(Java / Spring Boot)

Java 后端项目用 Maven 居多。配置方式和 Gradle 大同小异,但写配置的人容易手滑——比如多写了 scope 或者忘了 classifier。

步骤一:在 pom.xml 添加仓库

<repositories>
    <repository>
        <id>maven-central</id>
        <url>https://repo1.maven.org/maven2</url>
    </repository>
    <repository>
        <id>private-repo</id>
        <url>https://your-private-repo.com/releases</url>
    </repository>
</repositories>

步骤二:在 pom.xml 添加依赖

<dependency>
    <groupId>com.privacy.sdk</groupId>
    <artifactId>privacy-share</artifactId>
    <version>2.1.0</version>
    <!-- 注意:如果 SDK 包含 native 库,可能需要分类器 -->
    <!-- <classifier>linux-x86_64</classifier> -->
</dependency>
我踩过的坑: 某个项目引用了 SDK 的 AAR 包,结果 Maven 仓库里只上传了 .jar,native so 文件没打进去。后来手动把 AAR 发布到本地仓库才解决。所以坑就是——确认仓库里提供的包是完整的。

3.3 手动集成步骤(无包管理工具时)

有些安全等级高的项目不允许连远程仓库,只能用离线包。说白了就是“人肉拷贝”。

  1. 获取 SDK 包: 从咱们官方渠道下载 privacy-share-release.aar(Android)或 privacy-share-2.1.0.jar(Java)。
  2. 放入 libs 目录: Android 放在 app/libs,Java 放在项目的 lib/ 下。
  3. Gradle 手动引用: 在模块级 build.gradle 加一行:implementation files('libs/privacy-share-release.aar')。
  4. Maven 手动引用: 在你的 pom.xml 里用 <systemPath> 指向本地 jar 路径。
  5. 依赖项补齐: SDK 用到了 gson、okhttp、protobuf 等。如果你没引入这些,编译器会抛出 ClassNotFoundException。我建议用打包工具(如 shadow 或 proguard)把依赖打进去,或者手动引入。
经验之谈: 我见过有人直接把 jar 丢进 libs 目录,却没在 build.gradle 里引用——编译过了,但运行时 NoClassDefFoundError。所以手动集成一定要核对构建脚本里的路径。

3.4 快速验证是否集成成功

集成完别急着写业务代码。写个最简单的初始化调用,看控制台有没有报错。

// Android
PrivacySDK.init(context, "your_app_id", new SDKCallback() {
    @Override
    public void onSuccess() {
        Log.d("SDK", "init ok");
    }
    @Override
    public void onError(int code, String msg) {
        Log.e("SDK", "init failed: " + code + " " + msg);
    }
});
// Java
PrivacySDK.init("your_app_id", new SDKCallback() {
    @Override
    public void onSuccess() { System.out.println("init ok"); }
    @Override
    public void onError(int code, String msg) { System.err.println("init failed: " + msg); }
});

如果回调了 onError,别慌。通常是网络不通、证书不对、AppId 输错了。检查这三样,八成能好。

3.5 快速集成流程总览

下面这张图可以帮你快速定位自己卡在哪一步。你想想看——集成流程其实就三个环节:加仓库 → 加依赖 → 调初始化。大部分问题出在细节上。

快速集成流程图 隐私共享SDK快速集成流程 开始集成 有包管理工具? Gradle / Maven 手动集成 ① 下载 AAR/JAR ② 放入 libs 目录 ③ 添加依赖声明 ④ 补齐第三方依赖 ① 配置远程仓库 ② 添加 implementation ③ 排除冲突依赖 ④ 同步 & 编译 验证初始化 成功 ✓ 失败 ✗ 检查AppId/网络/证书 或看onError的code

3.6 常见集成故障速查表

错误现象 可能原因 排查方法
编译报错 Could not resolve com.privacy.sdk... 仓库未配置或包未上传 检查 build.gradle / pom.xml 仓库地址
运行时 ClassNotFoundException 缺少第三方依赖(gson/okhttp等) 用 gradle dependencies 查依赖树
初始化回调 onError(1001) AppId 无效或网络不通 检查 AndroidManifest 中的权限,确认可访问公网
集成后 SDK 功能无反应 混淆规则未配置 在 proguard-rules.pro 添加 -keep class com.privacy.sdk.**
一句话总结: 集成就像拼乐高,步骤不多但顺序不能乱。加仓库、加依赖、调初始化——三步走完。如果卡住了,回头看配置,八成是手误。