快手登录新增错误码
Windows删除文件夹问题 删除文件时失败:提示名字过长
这种情况下,可以修改目录的文件名。比如d://123123123//123456.txt,可以修改为d://1//123456.txt,完美解决问题。
快手渠道更改图片背景的网址
https://www.aigei.com/tool/image/bg
资源问题
快手联运包kwai有android-base版,android-base(androidx)版. 由于kwai(androidx)版引入了androidx的相关依赖以及appcompat等,而我们聚合sdk demo以及游戏工作室中使用了android-support-v4。存在资源冲突,所以我们接入android-base版。 使用android-base版时,由于kwai android-base版中使用了appcompat,这个资源在android-support-v7及以上才有,所以需要引入v7依赖。引入v7依赖时,android-studio工程会自动下载v4包,v7引入的v4包与demo(游戏)的v4包会存在冲突,因此,需要下载排除v4之后的v7包。 使用排除v4之后的v7包(V28.0.0)+ kwai android-base版 + 聚合sdk v4包后 + 快手在线依赖后,打出的包运行时,会提示android:lifecycle相关错误,因为kwai联运包中使用了生命周期相关方法而引用了android:lifecycle依赖。这个依赖应该在android v4(v28.0.0)中,而聚合sdk demo中的v4里没有这些方法,而恰好,快手提供的离线资源依赖中包括这些依赖包,所以最终快手 资源方案为: 排除v4之后的v7包(V28.0.0)+ kwai android-base版 + 聚合sdk v4包后 + 快手在线依赖 + 快手离线资源包中的lifecycle(部分资源,看缺少那部分就引入哪部分)。
资源问题更新
- 1、使用d8自动分包方案后,快手的资源出现了问题。
按照快手要求导入资源进行资源导入时,会提示类缺失,
经检查,此资源是包括在apk中主dex中的,存在apk中却没找到(这点确实存在困惑) lifecycle资源使用快手的离线资源则没有此问题。 由于appcompat-v7与android.arch.lifecycle存在耦合关系, 所以多AAR方案引入appcompat-v7时需要进行排除
此外由于android.arch.persistence.room:runtime:1.1.1与android.arch.lifecycle存在耦合关系,所以多AAR方案引入android.arch.persistence.room也需要将android.arch.lifecycle排除:
目前的解决方案是这样: 最终资源为 多AAR方案资源 + 快手离线资源 (后续有待研究点是:多AAR打包方案引入的资源与快手离线资源版本一致,但是多AAR打包方案中导入部分资源无效)
- 2、最终资源的形式如下: 最终资源为 多AAR方案资源 + 快手离线资源
网络连接问题
整理好快手资源包后,打包系统可以打包了,但是出现了打出的资源包无法连接网络问题。原因是缺少okhttp3文件夹以及相应的文件。通过正向打包的方式可以获取okhttp3文件夹。当将此文件夹复制到打包系统项目目录回编译时,发现apktool无法识别此目录,因此改为了修改签名前的kuaishou.apk文件类型为kuaishou.zip,再通过WinRAR将okhttp3文件夹复制到kuaishou.zip中,再更改kuaishou.zip文件类型为kuaishou.apk。 至此,网络连接问题就解决了。
图标问题
快手提供的图标非透明底色,为白色底色。而打包系统识别的图标只能为透明底色,因此需要对快手角标图标进行处理。处理可以借用的网址。https://www.aigei.com/tool/image/ai
闪退问题
访问外部存储文件的权限问题
requestLegacyExternalStorage is loss# 当前APK未对Android10 适配 解决方法:请添加requestLegacyExternalStorage=true
快手渠道登录闪退
gson版本过低导致,升级gson版本为快手渠道要求依赖版本。
implementation(“com.squareup.okhttp3:okhttp:4.9.1”) 会与快手
pm2文件路径
多AAR打包方案整理资源不全。例如: 导入资源
implementation ‘com.android.support:support-compat:28.0.0’
对应依赖树:
https://github.com/kezong/fat-aar-android/issues/347 降低androidx.appcompat:appcompat:版本。 embed ‘androidx.appcompat:appcompat:1.3.1’ 改为: embed ‘androidx.appcompat:appcompat:1.2.0’
gradle.properties中设置androidx为true
android.arch.lifecycle-common-1.1.1.jar
由于渠道资源是在打包系统中使用的。
详见d8.
解决! 因为在路径下没有找到 *.class 所以报了nio异常。排查下对应的路径是否存在文件,如果不存在文件则进行特殊处理就可以。比如我这的特殊处理是看哪个地方存在class文件,将路径指向存在文件的路径。
请检查是否对token等参数的长度进行限制。
ERROR: ‘Namespace for prefix ‘tools’ has not been declared.’ 原因:https://developer.android.com/studio/build/manage-manifests?hl=zh-cn 删除此标签
n/ssp_18) not found. W: D:ChannelFolderJJChannelPackageForTestToolConfigPathgamesdcpPro100055huya eslayoutark_adapter_item.xml:2: error: resource dimen/ssp_18 (aka com.huya.berry.cn.jj.log:dime n/ssp_18) not found. W: D:ChannelFolderJJChannelPackageForTestToolConfigPathgamesdcpPro100055huya eslayouthyberry_floating_coupon_left.xml:13: error: resource dimen/dp5 (aka com.huya.berry.cn.j j.log:dimen/dp5) not found. 尺寸表示的文件夹不能删除。
Manifest中的启动模式都设置成默认(standard)时,不同厂商设备的启动模式可能不一样。
问题背景
APK母包中没有MultiDex类,APK经过反编译后具有多dex,导致出现此错误。
问题解决思路
将渠道资源中的Androidx支持库资源拷贝到apk的主dex中。
问题解决与否
已解决
栈溢出错误。一般发生在函数中使用到递归的情况。 这个问题是递归函数调用引起的,当递归函数循环调用而没有终止条件时触发。
原因可以参考此文档,此问题与attrs.xml文件有关。
原因
这个问题是因为在apk回编译的时候,具有相同@_name属性的attr标签。attr合适会冲突可见此篇文章。
解决方法
对比游戏以及渠道attr文件,进行合并。 合并过程中有下面几种情形:
- 渠道与游戏attr文件name相同,但是都没array类型的属性。
游戏
渠道
这种类型是不进行合并的,游戏可以正常运行。 2. 游戏以及渠道attr文件中包括array类型的标签。
游戏
渠道
合并后文件存在渠道的attr autoSizeTextType属性中,并删除游戏的attr autoSizeTextType属性,后续会将渠道的属性都放到游戏的属性中:
合并过程中,以游戏为基准来看的话,删除了format属性,并且在array中增加了属性。
经测试,游戏可以正常运行。
参考1:
否
使用同一个OPPO账号登录OPPO渠道以及OPPO联盟广告渠道时,JJ服务器返回的用户标识是一样的。
该接口为同步接口 一般来说,只要调用GameCenterSDK.init(appSecret, this)时传入appSecret正确,并且在主进程中调用此接口,OPPOSDK的初始化应该就是成功的。
B站的aar资源中,对应manifest以及res文件中的配置资源可能不全,需要结合B站的接口文档,看下B站接口文档中有无需要添加的配置,并添加上。
缺少appcompat.light.dialog资源,此资源在Android-support-v7中
so检测不通过,原因为会对多aar打包方案默认对so进行压缩。因此,整理so资源时,需要解开aar包,获取未压缩的so库资源替换多AAR打包方案生成的so库资源。
下面两个jar包中的assets文件需要拷贝出来。
要求调用时传入游戏主Activity,目前接入文档中没有对此做出限制。
小米渠道获取渠道资源目前是使用手动解aar包的方式。 可能存在的优化点:
由于魅族进行二次签名,因此要求游戏不能使用二次签名。
游戏已经上架,另外再打测试包时候不能登录,提示游戏签名不正确。 需要去渠道后台打开联调开关。
魅族渠道 未安装支付宝 游戏无法拉起网页支付宝。部分机型,魅族SDK没有做适配,所以部分机型没有安装支付宝情况下, 无法拉起网页支付宝。
华为的接入文档比较繁琐,可能是游戏SDK、账号SDK、支付SDK不是出自同一人,但是再接入华为的联运SDK时需要适用这三个SDK,因此需要阅读这三个的接口文档。
游戏 Activity指的是游戏的启动activity,此部分是否会有问题?
可以等出现资源出错时在修复此bug,不然象棋会出先请求权限异常问题。
operate: Unexpected cn.m4399.operate.OpeFileProvider, check its existence and its authority matched with ‘com.jj.log.m4399.operate.FileProvider’
修改applicationId为gamePackageName
应用如何确保 可以看文章中查看签名处理。
部分Scope没有权限,接入的非抖音联运SDK
由于打包系统内部删除文件导致的,已修复。
解决步骤
下面之前包括了233渠道,现已将233渠道从中剔除。
233渠道Manifest文件中,queries标签整理在一个标签下。正常情况下queries标签有多个,但是目前的打包系统仅识别一个queries标签。
tools.replace
当我们的项目的某些属性和第三方库中的属性有冲突时或者我们想修改第三方库中某些资源的属性时,我们就需要使用tools:replace来处理。跳转链接。
此项暂时先不添加,添加之后会报错。
233渠道防沉迷已经内部集成, 聚合渠道SDK无需关注。
除了用233拉起工具进行测试外,还需要直接打开应用,点击悬浮球看下是否出现闪退。
缺少Landroid/support/v4/app/SupportActivity类。
原因:
也就是说Glide依赖需要和android-support依赖放在一起。此方式还是没有解决问题,需要再研究下
定位到应该是点击悬浮球的时候,会使得GameApplication重新创建了,导致重新调用了SDK的初始化方法,初始化方法会检查是否有依赖Glide。Glide中有使用了android.support.v4.app.FragmentActivity(继承android.support.v4.app.SupportActivity),给的包中存在多dex,Glide所在的dex中只有FragmentActivity,没有SupportActivity,可能只这个问题导致的
闪退实际原因
缺少android/support/v4/app/SupportActivity依赖的android/arch/lifecycle/LifecycleOwner类,该类在android.arch.lifecycle-common-1.1.1.jar中, 233资源中加入android.arch.lifecycle-common-1.1.1.jar和android.arch.lifecycle-extensions-1.1.1.jar就可以了
此点可能存在问题。 阿里需要替换ng资源,需要注意。
最低版本为不高于21; 目标版本不高于26;见阿里常见问题 最新文档中已去除targetAPI的限制。
远程依赖可以先不导入。目前看SDK功能运行正常。
内网环境中应用宝的环境配置随时可调,实际测试中,如果应用宝渠道拉起支付异常,可以检查打包系统配置的应用宝环境是否与服务端配置环境一致。
此时需要联系商务确认是否已经发布相应的环境,对应应用宝的沙箱/现网环境。
检查下沙箱或者现网环境是否发布。以及现网和沙箱配置的回调接口是否正常。
检查返回的APPKEY对应环境与应用宝渠道配置环境是否一致。
另外登录开始后进入倒计时30,如果没有收到回调则回到登录界面是否需要。
应用宝渠道包括了QQ OPEN SDK版本:3.5.12.2、微信 WECHAT SDK版本:5.2.1。如果游戏母包中也包括了这两部分资源,如果率先加载了游戏中的com/tencent中的资源,由于游戏中资源比较旧,可能导致游戏登录异常。
请先检查配置,确认是否在应用宝申请了微信登录功能,并在应用宝后台绑定微信参数。 QQ登录异常,请确认否在应用宝申请了QQ登录功能,并在应用宝后台绑定QQ参数。
检查应用的启动模式,是否从singleTop跳转到了singleTop,导致页面无跳转。
登录如果返回1305,// 客户端签名非法 则需要游戏侧与登录服务端确认是否设置了相同的环境。
相比之前Res接入的方式需要删除此部分。目前通过多AAR方案集成资源,不用删除多AAR打包方案生成的这些文件。 订单补单的逻辑先不添加。
检查Manifest中声明的是否有tools命名空间。删除。
vivo渠道同意隐私协议接口只能调用一次,不然可能会引起登录异常。
oaid冲突导致的,vivo渠道的oaid版本为1.0.25.
vivoAD渠道的参数与vivo渠道完全一致,不用再做别的特殊处理。之所以有vivoad渠道是因为vivoad渠道与vivo渠道游戏的配置参数不同。
package 名称必须以“.mz”结尾。
下单之后会有一个协议,用来标识走的是新协议还是旧协议。
关卡、角色服务器id、角色服务器名称、安装包渠道编号这四个字段没有是可以传空
冲突的原因是重复导入了iap资源,去除此部分资源就可以
androidx支持库冲突导致的。 基于公共支持库的思想,象棋androidx支持库的问题解决了。 回头将androidx支持库单独抽出来,也作为公共支持库,然后再研究下怎么判断项目中是否使用了androidx支持库
通过SDKKernel判断当前使用的内核版本,即so库的版本,当前最新的so库版本为1.8.7。 内核的TAG为Android Platform。
缺少so库。导入jni文件。
implementation “androidx.appcompat:appcompat:1.4.1” 改为 implementation “androidx.appcompat:appcompat:1.2.0”