APK接入常见问题

一、第一次打开应用取不到广告,返回11005错误

  1. 可以试下授权之后杀死应用再次进入,验证是否能够正常出广告

  2. 第一次取不到广告,是因为还没拿到权限就调用init初始化SDK。初始化SDK之前需拿到SDK需要的权限,否则初始化校验权限不通过会失败

  3. 可以判断onRequestPermissionsResult成功拿到权限之后再进行初始化

二、视频类广告黑屏但是有声音

在VideoActivity添加硬件加速

<activity
    android:name="com.opos.mobad.activity.VideoActivity"
    android:hardwareAccelerated="true"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:screenOrientation="sensor" \>

三、com.a.a.a报的冲突错误

通常此类问题是因为jar包中重复com.a.a.a导致,SDK中使用com.a.a.a,如果开发者接入了其他的jar,并且也有com.a.a.a,就会导致报错

四、包关于.market的NameNotFoundException错误,未在OPPO手机上运行,获取商店版本出现错误

找不到商店版本,使用oppo手机才能出广告

五、IdProviderImpl报错

这个是获取不到id报的,不影响正常功能

六、插屏、开屏、激励视频等广告显示不出来(白屏、没有关闭按按钮),如果是游戏类接入通常是引用不到assets的资源文件,需要拷贝出来到游戏开发平台引用

log出现openAsset的错误,如果是游戏类的接入,可能是引用不到sdk的assets的图片资源,需要拷贝资源到对应的目录下

七、报code=-1的错误

  1. 可能是未依赖okio、wire、或者是否使用了代理

    网络出现问题:

    【1】有依赖okio、wire库

    【2】是否使用了代理,可以使用移动网络看下是否有问题

  2. 版本号大于330之后,若偶尔出现-1的错误码,可忽略,是由于网络超时导致

八、now time over ad expore time

手机时间与实际时间不符,需要调回正常时间

九、原生getImgFiles() 这个List是空

确定申请的原生广告类型,若是原生-自渲染-默认类型,只返回icon

十、原生获取logo图片为空,

若logo图片为空,建议媒体自行打底渲染广告字样

十一、线上返回广告,但是调用show方法回调10006本地没有广告

可能是存在多个广告对象,但是使用的是同一个回调,导致错误广告对象调用show而没有广告

十二、错误堆栈输出找不出到proto相关类

  1. 可自查是否引入okio、wire相关

  2. 是否引入的三方包中已包含这个okio,导致冲突

十三、java.lang.ClassNotFound.Exception:Didn't find class "xxx" on path: DexPathList[zip file "/data/app/xxx-1/base.apk"]xxxxx

  1. 可反编译有问题的apk看下对应路径的类是否存在,若不存在可以确定下是否由于混淆将对应类混淆导致

  2. 确认在build.gradle 中是否声明了multiDexEnabled 为ture,是的话可以将apk使用jadx-gui.exe反编译查看对应路径的类是否存在,存在则说明是由于分包造成找不到类,可搜索定制分包相关方案解决

十四、demo编译报错 Execution failed for task ':processReleaseResource' > Android resource linking failed Output: error: resource style/xxxTheme not found.

原因之一:可能是因为gradle版本过高导致,可通过以下方案验证

  1. 打开压缩包中的MobDemo项目验证是否正常,若正常则大概率是因为gradle等环境导致

  2. 使用的Android studio 是3.5.3以上,gradle版本配置需对齐

    1. 可修改project/build.gradle的classpath为对应版本'com.android.tools.build:gradle:3.5.3',

    2. gradle-wrapper.properties的distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

  3. 在app/build.gradle的android配置

    android{
        defaultConfig{
            flavorDimensions "default"
        }
    }
    

十五、onAdFailed接口返回1003

  1. 是否使用的是oppo手机

  2. 同部手机某些广告类型有广告,有的广告类型没有广告,可以降低请求频率,可将appid、posId提交给商务查看

  3. 同部手机所有广告类型返回1003,可使用其他的手机验证,若其他手机还是不行,可联系商务处理

  4. 【建议】使用广告预览功能(路径:广告联盟-工具中心-广告预览),将手机IMEI号与广告位ID绑定生成预览信息,再进行测试广告

十六、调用插屏请求广告,正常返回但是调用show不能展示广告

确认是否是插屏的广告位,可能申请了插屏视频的广告位,所以出不了广告

十七、插屏广告数据已经返回onAdReady,但是调用展示没有出现广告

自查是否广告位为插屏视频的广告位,调用的是InterstitialAd

十八、出现激励视频看完没有回调onReward的情况

是否对落地页进行监听,落地页关闭才奖励之类,由于落地页并不是一定会打开,所以不能以此为依据

十九、unsatisfiedLinkError问题

日志相关:com.opos.cmn.nt.crypt.EncryptUtils

排查:

  1. 是否采用不支持的架构,目前支持的架构为arm64-v8a,armeabi-v7a,其他架构不支持

  2. 是否游戏类媒体依赖方式不支持依赖aar里面的so库,需要媒体解决这种依赖问题

二十、视频类返回10008的错误

  1. isReady返回true,视频类load之后只能展示一次,若需展示新广告请重新加载

  2. 未在onAdReady广告数据返回之后调用,无法展示,需等待onAdReady之后再调用

二十一、提示provider don't find in AndroidManifest.xml

  1. AndroidManifest通常是因为缺少Provider配置,可详细查看接入文档配置

  2. AndroidManifest 声明的Provider 的authorities未按照要求配置

以上Q&A未能解答问题,可以按照以下操作

  1. 打开log过滤TAG为mob_ad复现下操作,提供下日志
  2. 日志打开方法:初始化SDK的时候打开SDK日志,
private void initSdk() {
    InitParams initParams = new InitParams.Builder()
        .setDebug(true)//true打开SDK日志
        .build();
    MobAdManager.getInstance().init(this, Constants.APP_ID, initParams);
}

results matching ""

    No results matching ""