接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

 

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文件,导致融合渠道包有问题。

 

 

暂时先总结这些,后面遇到问题再做补充!