SDK对接遇到的问题与解决
接sdk第一步是看清文档,了解接入sdk的需求,然后把文档上说明的需要添加的资源文件,依赖库,jar包等添加到接入项目中,修改Manifest清单文件(根据需求添加权限,api最低版本号,application内容与继承,注册activity等)
然后我们主要做的就是
sdk的初始化->登录接口->支付接口->数据上报->悬浮窗的显示/隐藏->activity的生命周期->退出登录/切换账号
一般看接入文档里面的必接接口,可选接口可以不接,接入文档仅供参考,一定要看接入demo,
遇到过坑,接入文档上面说了一个角色信息必须上传,但是demo里面是不上传的,在接入项目中添加这条信息上传就报异常了!所以一定要看demo,接入文档仅供参考!
记录一下在接sdk 时遇到的一些问题:
1.sdk初始化失败
原因1:有可能是没有导入对应的jar包或者依赖库,导致获取不到sdk实例,主要检查依赖库和jar
原因2:获取的上下文不对,有的要求上下文为activity,就需要把上下文强转成activity,例如:
IAppPay.init((Activity) context, requestedOrientation, mAppId, "");中的(Activity) context就是把context强转成activity类型
原因3:Manifest清单文件没有配置好权限,activity,application等,这些需要根据对接文档填好对应内容,application要按要求继承。
原因4:渠道不合法,渠道名与后台的不对应,注意渠道名要与后台保持一致!
原因5:jar包重复或冲突,删除重复的jar,也可以参考我的另一篇博客解决jar重复的方案:点击打开链接
2.登录失败
原因1:如果按照文档写的,但是没有登录界面就是没有拉起,可以先检查res下的资源文件是不是正确的,这个需要跟渠道方对接,问清楚,不然可能搞死你(亲身经历,渠道方给了错误的资源文件,我们这边是用反射来调用方法的,这样可以确保程序不会崩,但是会导致捕捉异常困难,由于给的是不对应的资源文件,点击登录时,一直找不到对应的xml所以没有拉起登录界面)
原因2:清单文件没有配置好对应的appid、渠道id或者是appkey等参数,或者是登录传给后台的userid或token值不对应,这个需要与后台对接,确定登录需要配置的参数名称,要是不对应的话无法登录。
注意后台需要获取的参数如果文档没有说明,要找渠道方询问如何获取,自己是想不出来的!
还有需要注意的,登录成功后要调用方法与后台验证,例如:
Util.checkLogin(context, userId, token, "", "", mLoginCallback);
3.支付失败
支付需要先实例化一个支付参数,包括支付参数里面需要包含的一些字段,如:商品编号,商品描述,价格,订单号等等,获取到支付参数实体后,调用sdk 的支付方法,new一个监听的方法重写支付成功或失败的回调,调用callback把支付结果返回;
原因1:登录失败,登录失败是不可以做支付操作的,所以可以检查一下是否登录成功
原因2:支付参数的类型转型导致的异常,例如int 类型需要转成string的,可以用try/catch来捕捉异常,例如:
int p = 0 ;
try {
p = Integer.valueOf(productId);
} catch (NumberFormatException e) {
e.printStackTrace();
}
orderUtils.setWaresid(p);//应用中的商品编号。
还有注意需要转型和数学运算的,先做数学运算再转型,不然会出问题,例如金额单位是元的时候,需要除以100:
double price = (double)amount/100;
orderUtils.setPrice(price);//单位 元
原因3:模拟器上没有安装支付宝或者微信,程序有可能会走H5页面,模拟器上无法显示有可能是支付宝页面对模拟器做了限制
关于闪屏和角标:
替换横屏竖屏的图片,在sdk的assets中替换图片,角标在打包工具对应渠道的icon目录下添加或替换渠道方提供的角标图片,例如:E:\MergeApkTool\icon_img 替换完成后使用打包工具打包。
横竖屏问题:
注意根据渠道方要求做横竖屏处理,横竖屏切换可能会导致一些问题,需要在初始化的时候做判断,一般游戏多为横屏。注意在横竖屏切换的时候activity的生命周期会发生变化,曾遇到一个问题横屏切竖屏支付页面的时候支付列表没有拉起,解决办法是重写oncreate(),重新获取listview 并添加对应的adapter。(注意:也有可能是缺少对应的竖屏的布局文件,这个会显示空指针异常)
打包出现问题:
提示lib有异常的,把lib文件夹下都的文件删除,只保留armeabi文件夹。原因是有多余文件没清理干净,导致的异常。
提示xx.layout-v9中找不到资源文件的,把res目录下的layout-v9文件夹删除。
安装包的时候提示没有证书,安装失败的,原因是反编译工具出现问题,反编译出来多了一个unknown文件,导致融合渠道包有问题。
暂时先总结这些,后面遇到问题再做补充!
SDK对接遇到的问题与解决相关推荐
- 手游SDK是什么意思,可以解决哪些问题?
SDK一般是指软件开发工具包(Software Development Kit),是软件工程师为项目特定的项目准备的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. 手游SDK是 ...
- Android SDK Manager更新不了的解决办法
android SDK Manager更新不了,出现错误提示:"Failed to fetch URL..."! 可以用以下办法解决: 使用SDK Manager更新时出现问题 F ...
- vivo小游戏sdk对接 Laya(5分钟掌握)
vivo云测 vivo小游戏开发 视频演讲稿 laya教程-对接vivo平台(10分钟掌握) 演讲稿: 本节内容讲的是:Laya引擎对接vivo平台 讲解顺序依次是SDK对接,安装vivo发布环境,测 ...
- linux第三方SDK库冲突,摄像机SDK对接第三方平台一SDK库问题FAQ
Q1:IVS_PU_Player.dll的作用是什么?在调用HWPuSDK.dll时是否必须调用IVS_PU_Player.dll? A1:IVS_PU_Player.dll是媒体播放库,主要用在显示 ...
- 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决
概述 这是新浪微博官方 Android SDK Demo 使用 Android Studio 导入.编译并运行通过的版本. 源码:WeiboSdkDemo 官方项目请点击: weibo_android ...
- Android 的 SDK Manager 无法启动 闪退解决方法
转自 http://hi.baidu.com/yangw80/item/7be029ebdb33390f65db0014 [故障描述] 做 Android 开发就要下载 Android SDK,其中的 ...
- Android studio的sdk tools下没有LLDB的解决办法
粉丝提问: 博主解答: 解决办法: 点击setting-->plugins-->找到"Android Support"选项,并勾选,然后会提示重启android stu ...
- 【Android】Android SDK下载和更新失败的解决方法!!!
最近刚换了电脑,开始搭建Android开发环境的时候,下载SDK总是会出现如下错误: [java] view plaincopy Failed to fetch URL http://dl-ssl.g ...
- 淘宝开放平台SDK对接
http://blog.csdn.net/papalian/article/details/20550795 首先得有一个注册的appkey和App Secret 该流程分三个步骤: 第一步:通 ...
最新文章
- javascript优缺点_为什么要在JavaScript中使用静态类型? 优缺点
- R语言计算每个分组的行数并将结果添加到dataframe中实战
- 客户端爬取-答网友问
- 基于mvc三层架构和ajax技术实现最简单的文件上传
- Python语言编程之正则表达式模式
- Python 'takes exactly 1 argument (2 given)' Python error
- 大牛书单 | 读书日,他们最近看了这些书
- IPM: Technical model of IP right scope on Contract Item level
- android 反射调用方法可不可以重载,使用Java进行反射投射和重载方法调度
- MAC 安装 Magento2 community edition 详细步骤
- GIT创建公钥,并放置远程库
- python笔记-动态类型
- mysql 授予用户权限_mysql授权用户权限
- 使用ImageJ软件计算信噪比(SNR)的小工具
- 使用PicGo快速搭建图床
- 网站被挂马了怎么办?
- java phaser,java线程之Phaser
- 易懂介绍Java中类与对象、构造方法、继承
- CAT1模块EC200S 4G物联网模块串口透传MQTT协议 快速入门指导资料
- js之焦点图轮播特效
热门文章
- 通过Vue+flvjs在HTML5中播放flv格式视频文件—demo及api
- SMTP邮箱服务器发送邮件
- 表示自己从头开始的句子_从头-一切从头开始的句子
- 从头来过教你PHP脚本语言(一)
- Easyui DataGrid Editor
- 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
- 错误:类 SubClass 是公共的, 应在名为 SubClass.java 的文件中声明
- vivo手机系统android9,vivo终于推送Android9.0,这几款机型你有吗?V粉们已经迫不及...
- OpenGL入门学习
- 我妹妹成了我的女儿——难道我真的中年大叔了?