Skip to main content

常见问题

一、编译报错#

1、拉取TP SDK 或 TP对应的三方Adapter Gradle 失败#

步骤1:开发者需根据打包平台确认集成的SDK正确#

  • (1)是否是5.X更新上来的用户:由于JCenter仓库停止服务,TP和三方平台的仓库均有更新,请老版本升级上来的客户对照打包平台一一修改引用
  • (2)版本号是否能一一对应或者是否有字母写错的情况
  • (3) Android Studio HTTP Proxy状态正常
  • (4) Gradle是否属于“离线模式”—— 'offline mode'情况下构建项目是不会在线拉取第三方依赖包的

步骤2:确认Module级和Project级中build.gradle中正确引入了mavenCentral()google()#

repositories {
mavenCentral()
google()
jcenter()
...
}
}
  • (1)关于Module和Project,Unity开发者可以参考Google官网的Android Studio模块结构说明。
  • (2)需注意mavenCentral()是否写成mavenLocal()mavenLocal()是本地Maven仓库,第一次拉取TP Gradle需从线上拉取
  • (3)各个代码库的列出顺序决定了 Gradle 在这些代码库中搜索各个项目依赖项的顺序。类似如下图情况表明tradplusad跑错了仓库导致拉取失败,此时开发者需要将mavenCentral()的位置调整到最高,重新拉取。

2、unexpected element <queries> found in <manifest>Error: Missing 'package' key attribute on element package#

3、Entry name ‘AndroidManifest.xml’ collided#

需开发者要在build.gradle中添加

android {
packagingOptions {
exclude 'AndroidManifest.xml'
}
}

4、java.lang.NoClassDefFoundError:Failed resolution of:Lcom/google/android/gms/ads/rewarded/RewardedAd#

原因:同时引入 AdMobFirebase

解决: 只能引入一个,同时firebase要引入和推荐的Admob Adapter一样的版本。

// 版本号,仅作举例说明,具体Firebase接入的版本要和TP Admob 推荐的版本号一致
// implementation 'com.google.android.gms:play-services-ads:17.2.1'
implementation 'com.google.firebase:firebase-ads:17.2.1'

二、运行时异常#

1、Adx Crash:android.content.res.Resources$NotFoundException: String resource ID #0x0.#

三、广告加载失败#

  • 开发者需配合错误码和错误信息定位错误问题

  • 如果广告一直请求失败,就需要开发者根据三方平台错误码确认集成三方广告加载失败的原因

  • 开发者可以通过过滤TradPlusLog查看日志信息或设置LoadAdEveryLayerListener监听oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)回调,打印每个广告源加载失败的原因

具体排查步骤如下:#

步骤1:开发者需要根据打包平台确认集成的SDK都正确添加到项目中

  • 例如找不到三方Adapter会报错adapter not found 或 Couldn't locate or instantiate custom event null;

步骤2:确认在TradPlus创建的广告位ID下已经添加了三方广告网络

  • 例如会由于拉取不到配置报no config

步骤3:确认TP的广告位类型和new TPObject的类型一致

  • 例如不能创建开屏的广告位ID,但是用激励视频API去请求

步骤4:确认是否添加TP的混淆配置

  • 会报Couldn't locate or instantiate custom event null

步骤5:海外源例如Admob、Facebook等均需要使用三方提供的测试ID去测试,可配合如何使用测试模式来测试

  • 会提示没有广告填充——NOFILL

步骤6:确认TP后台配置的三方平台广告源是否有多个APPID

  • 即使是不同类型也只能配置同一个APPID。例如Mintegral开屏类型的appId、appkey和激励视频类型的appId、appkey不一致,三方平台只支持初始化同一个APPID,多个APPID初始化会导致请求失败

步骤7: 确认集成广告源是否需要传入Activity

  • 部分三方源需要activity才能请求成功。

四、广告加载成功但是展示失败#

是否是在广告加载成功后调用showAd#
  • 1、各类型广告onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)oneLayerLoaded(TPAdInfo adInfo)加载成功监听是否回调
  • 2、激励、插屏、开屏isReady()为true,后调用showAd()。
广告位类型请求的API是否类型匹配#
  • 例如创建开屏的广告位,但是使用激励视频的API去请求。
  • 开发者可以通过打印onAdVideoError(TPAdInfo tpAdInfo, TPAdError tpAdError)onAdShowFailed(TPAdError error, TPAdInfo tpAdInfo)查看报错原因。
激励视频、插屏#
  • API调用问题 showAd(Activity activity, String sceneId) 展示广告是否传入Activity,context会导致部分广告源展示失败。
  • 后台配置问题 errorMsg为frequency limit,TP广告位是否设置了频次限制。
标准原生#
  • showAd(ViewGroup adContainer, int layoutId)容器是否为空
  • 开发者是否修改布局文件中的android🆔 资源ID,会导致自渲染广告的元素无法找到对应id而展示失败
  • 后台配置问题 errorMsg为frequency limit,TP广告位是否设置了频次限制。
开屏#
  • 开发者需确认加载和展示广告是否使用配对的API,正确传入容器,具体请查看开屏文档
  • 后台配置问题 errorMsg为frequency limit,TP广告位是否设置了频次限制。

五、Unity接入#

1、激励(插屏)广告播放时切屏再回到游戏广告没有继续播放问题#

  • unity在编译时使用的singletask模式,所以切到桌面点击icon进入会将游戏界面上层的全部清除。如果是任务管理器回来并不会有异常。
  • singletask是Unity官方建议模式,如果需要修改,可以网上查找下相关文章。