Android

最近更新时间:2025-12-23 16:43:42

我的收藏

准备工作

1. 开发环境

Android Studio(2022及以上版本)
Android SDK Tools:android-sdk 29 及以上
minSdkVersion:21
targetSdkVersion:29

2. 下载 SDK

下载 TAVMagic_Professional_Android.zip 压缩包,解压获得 tavmagic_x.x.x.x.aar 文件后就可以开始集成工作。

3. 申请 License

您可以 联系我们 获得 License。

初始化 SDK

1. 在工程中添加依赖

将下载的 tavmagic_x.x.x.x.aar 拷贝至 Android Application 工程的 libs 目录下。随后打开对应模块的 build.gradle,添加依赖引用:
dependencies{
...
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) // 将.jar和.aar格式依赖库依赖进工程
// 添加对libpag的依赖
implementation "com.tencent.tav:libpag:4.4.35-harfbuzz"
}

2. 设置 License 鉴权

// 在Application初始化时设置License
TELicenseCheck.getInstance().setTELicense(context, TAV_MAGIC_LICENSE, TAV_MAGIC_KEY, (errorCode, msg) ->
Log.v(TAG, String.format("auth check result, errorCode: %d, msg: %s", errorCode, msg));
鉴权 errorCode 说明:
错误码
说明
0
成功。
-1
输入参数无效,例如 URL 或 KEY 为空。
-3
下载环节失败,请检查网络设置。
-4
从本地读取的 TE 授权信息为空,可能是 IO 失败引起。
-5
读取 VCUBE TEMP License文件内容为空,可能是 IO 失败引起。
-6
v_cube.license 文件 JSON 字段不对。请联系腾讯云团队处理。
-7
签名校验失败。请联系腾讯云团队处理。
-8
解密失败。请联系腾讯云团队处理。
-9
TELicense 字段里的 JSON 字段不对。请联系腾讯云团队处理。
-10
从网络解析的 TE 授权信息为空。请联系腾讯云团队处理。
-11
把 TE 授权信息写到本地文件时失败,可能是 IO 失败引起。
-12
下载失败,解析本地 asset 也失败。
-13
鉴权失败,请检查 so 是否在包里,或者已正确设置 so 路径。
3004/3005
无效授权。请联系腾讯云团队处理。
3015
Bundle Id / Package Name 不匹配。检查您的 App 使用的 Bundle Id / Package Name 和申请的是否一致,检查是否使用了正确的授权文件。
3018
授权文件已过期,需要向腾讯云申请续期。
其他
请联系腾讯云团队处理。

3. 初始化 SDK

1. 资源拷贝:将 assets 中的资源文件拷贝到应用数据目录。
// 在InitUtil中实现的拷贝逻辑
private static void copyAssets() {
String currentVersion = getAppVersion();
if (!TextUtils.equals(getSavedVersionCode(), currentVersion)) {
new File(mSdkAssetPath).mkdirs();
FileUtil.copyAssets(mAppContext, "resource", mResourcePath);
TAVMagicBase.installAIModelFilesFromAssets(mAppContext, mSdkAssetPath);
saveVersionCode(currentVersion);
}
}
2. SDK 初始化:调用 initSDK 完成初始化。
// 初始化SDK并配置参数(使用静态库)
boolean loadRet = TAVMagicBase.initSDK(mAppContext, mSdkAssetPath);

// 或者使用动态库初始化(可选)
boolean loadRet = TAVMagicBase.initSDK(mAppContext, mSdkAssetPath, "/path/to/dynamic/libs");

// 设置日志级别(可选)
TAVMagicBase.setLogLevel(Log.VERBOSE);

// 配置缩略图缓存(可选)
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
int cacheSize = maxMemory / 4;
TAVMagicBase.setThumbnailMemoryCacheSize(cacheSize);