Android广告SDK聚合开发

本文介绍了在Android广告SDK聚合开发过程中遇到的问题及解决方案,包括aar嵌套引用ClassNotFound问题的解决、分功能打包lib包的方法,以及通过Build Variant实现不同渠道的功能控制。同时,提到了广告SDK开发的相关资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发需求需要聚合多渠道广告SDK,并对外提供一套调用接口,中间控制层添加己方服务器交互以及控制逻辑(广告填充优先级等),初次开发sdk,整理遇到的问题希望可以帮到有缘人。

遇到的问题

aar嵌套引用ClassNotFound

这个问题在于当前SDK lib需要打包成aar以供app调用,lib集成的第三方广告sdk提供的也是aar包,这个问题刚开始用gradle3.0以后的implementation依赖第三方aar包,用项目直接依赖方式运行没有问题,但是在将lib打包之后会发现项目运行找不到第三方aar包含的类,报错是ClassNotFound。搜索解决方式全都是gradle3.0以前的构建方式(诸如本地maven仓库),尝试无果后看Android官方文档,最终尝试出在lib使用compileOnly(编译时依赖,不会打包到lib的aar)依赖第三方aar,然后app重复依赖所有lib依赖,得解。

分功能打包lib包问题

这个需求在于要根据渠道的不同打出不同功能的sdk包,要求每个渠道包都只包含自己需要的代码,所以就需要分开代码,同样遍寻网络基本没有可用的解决方案(sdk开发的确有些非主流。),读Android官方构建文档,最终尝试出解决方式,在Project视图中建立和main同等级通结构的渠道module(名称同渠道名,此哩即有standard、a、b三个渠道,AS可自动识别),然后在构建文件中如下配置:

 publishNonDefault true
 flavorDimensions "version"
 productFlavors {
        standard {//with a&b
           
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值