快速集成: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 手动集成步骤(无包管理工具时)
有些安全等级高的项目不允许连远程仓库,只能用离线包。说白了就是“人肉拷贝”。
- 获取 SDK 包: 从咱们官方渠道下载
privacy-share-release.aar(Android)或privacy-share-2.1.0.jar(Java)。 - 放入 libs 目录: Android 放在
app/libs,Java 放在项目的lib/下。 - Gradle 手动引用: 在模块级 build.gradle 加一行:
implementation files('libs/privacy-share-release.aar')。 - Maven 手动引用: 在你的 pom.xml 里用
<systemPath>指向本地 jar 路径。 - 依赖项补齐: 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 快速集成流程总览
下面这张图可以帮你快速定位自己卡在哪一步。你想想看——集成流程其实就三个环节:加仓库 → 加依赖 → 调初始化。大部分问题出在细节上。
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.** |
一句话总结: 集成就像拼乐高,步骤不多但顺序不能乱。加仓库、加依赖、调初始化——三步走完。如果卡住了,回头看配置,八成是手误。