文档

支持

Unity Ads Monetization(变现)后台

LevelPlay 集成故障排除

排除常见的 LevelPlay 集成问题。
阅读时间6 分钟最后更新于 7 天前

将 LevelPlay 与 Unity 编辑器集成时,可能会遇到一些问题。请按照本指南对以下类型的问题进行故障排除:

使用 LevelPlayBannerPosition 指定横幅广告位置

错误

如果在使用
LevelPlayBannerPosition
作为枚举或整数时遇到编译错误,这是因为在 8.8.0 版中,
LevelPlayBannerPosition
已从枚举更新为类。此更改会影响在代码中引用横幅广告位置的方式。

解决方案

在 LevelPlay Unity 包的 8.8.0 和 8.8.1 版本中,
LevelPlayBannerPosition
已从枚举更改为类。更新后的 API 支持九个预定义的横幅广告位置,并允许通过创建
LevelPlayBannerPosition
对象来指定精确的 (x,y) 坐标。
如果在 Unity 编辑器控制台中看到
LevelPlayBannerPosition
编译错误,请参阅以下示例以了解一些可能的原因及其解决方案:

示例 1:参数默认值错误

传递具有默认枚举值的
LevelPlayBannerPosition
参数时,可能会看到编译错误。要解决此问题,请改用 null 值:
// Use null for the default value, or pass a value explicitlypublic LevelPlayBannerAd(string adUnitId, LevelPlayBannerPosition position = null)

示例 2:无效的开关或枚举比较

如果您的代码使用 switch 语句,或者以枚举或整数形式比较
LevelPlayBannerPosition
值,可能会看到编译错误。例如:
switch (position) { case LevelPlayBannerPosition.BottomCenter: }
由于
LevelPlayBannerPosition
现在是一个类,因此应将此逻辑替换为直接的对象比较:
if (position == LevelPlayBannerPosition.BottomCenter) { /* Handle case */ }
还可以在需要时使用
Description
属性比较横幅广告位置以便用于布局逻辑、日志记录或分析目的。例如:
if (position.Description == "BottomCenter") { Debug.Log("Banner is at bottom-center.");}

重复类错误消息

尝试构建或测试项目时,收到重复类错误消息 CSO433。此错误消息将标识发生重复的类及其出现在哪些程序集之中。以下是重复类错误消息的一个示例:
  • The type
    IronSourceMediationSettings
    exists in both
    Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    and
    'Unity.LevelPlay, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
重复类错误有以下可能的原因:
  • 更新了 Ads Mediation 包但未移除 Unity 插件
  • 更新了 Unity 插件但未移除 Ads Mediation 包
  • 重大的 Ads Mediation 包更新
请参阅以下各节了解这些问题的描述和解决方案。

更新了 Ads Mediation 包但未移除 Unity 插件

在已安装 .unitypackage 文件(Unity 插件)的情况下,通过 Ads Mediation 包更新到了最新版本的 Unity LevelPlay。

解决方案

在安装或更新 Ads Mediation 包之前,请移除 .unitypackage 文件(Unity 插件)。要移除该插件,请完成以下步骤:
  1. 在 Unity 编辑器中打开您的项目,然后转到 Assets(资源)
  2. 在 **Assets(资源)**中,根据使用的 ironSource SDK 版本,执行以下操作之一:
  • SDK v7.8.0 及更低版本:右键单击 IronSource > Delete(删除)
  • SDK v8.0.0:右键单击 LevelPlay > Delete(删除)

更新了 Unity 插件但未移除 Ads Mediation 包

在已安装 Ads Mediation 包的情况下,通过 .unitypackage 文件更新到了最新版本的 Unity LevelPlay。

解决方案

在安装或更新 Unity 插件之前,请移除 Ads Mediation 包。按照以下步骤从 Unity 编辑器中移除 Ads Mediation 包:
  1. 在 Unity 编辑器中打开项目,然后转至 Window(窗口)> Package Manager(包管理器)
  2. 在 **Package Manager(包管理器)**中,选择 Packages(包)> In Project(项目内)
  3. 选择 Ads Mediation > Remove(移除)
  4. 从 Unity 编辑器打开您的项目,然后转到 Assets(资源)
  5. 在 **Assets(资源)**中,根据使用的 ironSource SDK 版本,执行以下操作之一:
  • SDK v7.8.0 及更低版本:右键单击 IronSource > Delete(删除)
  • SDK v8.0.0:右键单击 LevelPlay > Delete(删除)
  1. 如果已安装 Mobile Dependency Resolver,还需右键单击 Mobile Dependency Resolver > Delete(删除)

重大的 Ads Mediation 包更新

您将 Ads Mediation 包从较低版本更新到了高得多的版本。

解决方案

如果您的 Ads Mediation 包需要进行重大更新,您可能需要执行其他步骤以确保顺利升级。 例如,如果要从 v1.0.0 更新到 v8.0.0,则需要在更新时执行其他步骤。如需了解更多信息,请参阅 Unity Package Manager(包管理器)中的 Ads Mediation 包描述。

无法从 ironSource SDK 中移除脚本符号

您从 ironSource SDK 中移除了
LEVELPLAY_DEPENDENCIES_INSTALLED
脚本符号,但它始终自动重新出现在 SDK 中。

原因

从 SDK 中移除
LEVELPLAY_DEPENDENCIES_INSTALLED
脚本符号时,SDK 将始终自动重新添加此脚本符号。从 ironSource SDK Unity 包版本 8.0.0 开始,此脚本符号是必需的。

解决方案

此问题没有已知的解决方案,因为从版本 8.0.0 开始,ironSource SDK 需要此脚本符号。此符号在删除后将始终自动重新添加。

缺少依赖项类错误消息

在安装 Ads Mediation 包后,您收到了依赖项类错误消息。以下消息是可能缺少依赖项类警告的示例:
  • The type or namespace name
    Core
    does not exist in the namespace
    Unity.Services
    .
  • The type or namespace name
    Newtonsoft
    could not be found.
  • The type or namespace name
    EditorGameServiceFlagEnabler
    could not be found.

原因

如果 ironSource SDK Unity 包中的
com.unity.services.core
依赖项被移除或无法安装,则可能会发生这种情况。如果缺少此依赖项,控制台将显示一条错误消息,指出找不到哪些依赖项类。

解决方案

有两种方法可以解决缺少的
com.unity.services.core
依赖项:按名称手动安装 Services Core 包,或移除
LEVELPLAY_DEPENDENCIES_INSTALLED
脚本符号。

在 Package Manager(包管理器)中安装 Services Core 包

要解决缺少的依赖项,请执行以下操作在 Unity Package Manager(包管理器)中安装 Services Core 包:
  1. 在 Unity 编辑器中打开项目,然后转至 Window(窗口)> Package Manager(包管理器)
  2. 在 **Package Manager(包管理器)**窗口中,选择 + 图标以打开下拉菜单,然后选择 **Install package by name...(按名称安装包...)**以手动输入包名称。
  3. 在 **Name(名称)**字段中输入
    com.unity.services.core
    ,然后选择 Install(安装)

移除 LEVELPLAY_DEPENDENCIES_INSTALLED 脚本符号

还可以使用
LEVELPLAY_DEPENDENCIES_INSTALLED
脚本符号恢复 Services Core 包。移除后的脚本符号将自动重新添加。在重新安装过程中,
com.unity.services.core
包也会自动重新安装。如果编辑器不显示 Services Core 包,可以使用此方法。
要解决缺少的依赖项,请执行以下操作,从 ironSource SDK Unity 包中删除
LEVELPLAY_DEPENDENCIES_INSTALLED
脚本符号:
  1. 在 Unity 编辑器中打开项目,然后转到 Edit(编辑)> Project Settings(项目设置)> Player(播放器)
  2. 在 **Other Settings(其他设置)**面板中,向下滚动到 Script Compilation(脚本编译)
  3. 选择减号 () 以移除相应符号,然后选择 LEVELPLAY_DEPENDENCIES_INSTALLED
  4. 选择 **Apply(应用)**以保存所做的更改。