Skip to content

Clever SDK Unity 常见问题 (FAQ)

本节汇总了在使用 Clever SDK Unity 版本时可能遇到的常见问题及其解决方案。

1. SDK 初始化失败

  • 问题描述:调用 CleverSDK.Initialize 后,回调函数返回 successfalse,并伴有错误信息。
  • 可能原因
    1. App ID 或 App Key 不正确:请检查您在初始化时传入的 appIdappKey 是否与您在 Clever SDK 平台注册的应用信息完全一致。
    2. 网络连接问题:设备可能无法访问 Clever SDK 的服务器。请检查设备的网络连接。
    3. SDK 版本过旧或不兼容:您使用的 SDK 版本可能与当前平台或服务器不兼容。请尝试更新到最新版本的 Clever SDK。
    4. 权限问题:Android 平台可能缺少必要的网络权限 (android.permission.INTERNET, android.permission.ACCESS_NETWORK_STATE)。请确保 AndroidManifest.xml 中已声明这些权限。
    5. Unity 项目配置问题:例如 Android 的 build.gradle 或 iOS 的 Podfile 配置不正确,导致 SDK 依赖未正确导入。
  • 解决方案
    1. 仔细核对 appIdappKey
    2. 检查设备网络连接。
    3. 从 Clever SDK 官方渠道获取最新 SDK 并更新。
    4. 确保 AndroidManifest.xml (Android) 或 Info.plist (iOS) 中包含所有必要的权限。
    5. 检查 Unity 项目的构建设置和平台特定配置。
    6. 查看 Unity 控制台的详细错误日志,通常会有更具体的错误提示。

2. 广告无法展示

  • 问题描述:广告加载成功回调触发,但调用 Show() 后广告没有显示。
  • 可能原因
    1. 广告位 ID 不正确:请检查您使用的广告位 ID 是否有效且与广告类型匹配。
    2. 广告填充不足:当前没有可用的广告。这可能是由于广告请求频率过高、广告库存不足、地理区域限制或广告配置问题。
    3. 广告状态不正确:在调用 Show() 之前,广告可能未完全加载 (IsLoaded() 返回 false) 或已经显示过一次。
    4. UI 遮挡:广告可能被其他 UI 元素遮挡。
    5. 主线程问题:广告的显示操作必须在主线程进行。确保您的广告显示逻辑在 Unity 的主线程中执行。
  • 解决方案
    1. 确认广告位 ID 的正确性。
    2. 增加广告加载失败时的重试机制,并检查广告后台配置。
    3. Show() 之前,始终检查 IsLoaded() 状态。
    4. 调整 UI 布局,确保广告有足够的显示空间。
    5. 确保广告相关操作在 Unity 的主线程中执行。

3. 激励视频广告观看后未获得奖励

  • 问题描述:用户观看了完整的激励视频,但 OnUserEarnedReward 回调未触发或未正确发放奖励。
  • 可能原因
    1. 未完整观看:用户可能没有完整观看视频或提前关闭。
    2. 回调未注册或处理不当OnUserEarnedReward 事件未正确注册,或者回调逻辑中没有正确发放奖励。
    3. 服务器验证失败:如果奖励发放依赖于服务器验证,可能是服务器验证失败。
  • 解决方案
    1. 确保用户完整观看视频。
    2. 检查 OnUserEarnedReward 事件的注册和处理逻辑。
    3. 如果涉及服务器验证,请检查您的服务器端代码和日志。

4. 登录失败

  • 问题描述:调用 CleverSDK.Login 后,回调返回失败。
  • 可能原因
    1. 网络问题:与登录服务器的通信失败。
    2. 用户取消授权:用户在授权界面选择了取消。
    3. 平台配置问题:例如微信小游戏未正确配置域名白名单。
    4. SDK 内部错误:SDK 在处理登录流程时发生异常。
  • 解决方案
    1. 检查网络连接。
    2. 在回调中处理用户取消的情况。
    3. 检查对应平台的开发者后台配置。
    4. 查看详细错误信息,并联系 Clever SDK 技术支持。

5. 某些 SDK 功能不支持

  • 问题描述:调用某个 SDK 功能(如分享、支付)时,提示功能不支持或无响应。
  • 可能原因
    1. 平台限制:某些功能可能在特定平台(如 iOS、Android、WebGL)上不可用或需要特殊配置。
    2. SDK 版本不支持:当前 SDK 版本可能不包含该功能。
    3. 未正确配置:例如支付功能需要配置商品信息和支付渠道。
  • 解决方案
    1. 查阅 Clever SDK 官方文档,确认该功能在目标平台上的支持情况和限制。
    2. 更新到最新版本的 SDK。
    3. 根据文档正确配置相关功能。

6. 如何更新 SDK

  • 问题描述:如何将 Clever SDK 更新到最新版本?
  • 解决方案
    1. 从 Clever SDK 官方渠道获取最新版本的 Unity 包 (.unitypackage)。
    2. 在 Unity 项目中,选择 Assets > Import Package > Custom Package...,然后导入新的 .unitypackage 文件。通常,新文件会覆盖旧文件并更新相关配置。
    3. 根据新版本的发布说明,检查是否有 API 变更或需要手动调整的配置。

7. 如何获取用户 OpenID

  • 问题描述:如何获取当前用户的 OpenID?
  • 解决方案
    • 在 SDK 初始化成功并用户登录后,可以通过 CleverSDK.GetOpenId() 方法获取。如果用户尚未登录或 SDK 未初始化,该方法可能返回空字符串或 null

8. 如何处理网络请求失败

  • 问题描述:SDK 内部的网络请求失败,例如数据上报失败。
  • 解决方案
    • Clever SDK 内部通常会处理网络请求的重试和错误上报。如果持续出现问题,请检查设备网络环境,并确保应用已获得网络访问权限。对于关键数据,您可能需要实现自己的重试逻辑或本地缓存机制。

9. 在 WebGL 平台集成 Google AdSense

  • 问题描述:如何在 Unity WebGL 项目中集成 Google AdSense?
  • 解决方案
    • Google AdSense 通常是通过 JavaScript 代码嵌入到网页中。对于 Unity WebGL 项目,您可能需要通过 Unity 的 Application.ExternalEvalApplication.ExternalCall 方法来调用 JavaScript 函数,从而在 WebGL 导出的 HTML 页面中加载和显示 AdSense 广告。这需要您在导出的 HTML 模板中手动添加 AdSense 的 JavaScript 代码和广告位。
    • 注意:这种集成方式可能需要额外的开发工作,并且可能不直接受 Clever SDK 的广告管理功能支持。建议优先使用 Clever SDK 提供的广告接口。