接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文件,导致融合渠道包有问题。
暂时先总结这些,后面遇到问题再做补充!