您的位置:首页>新闻>AnySDK常见接入问题集锦

AnySDK常见接入问题集锦

lee 新闻

2014-12-17

小米SDK登录不显示登录界面?

很多开发者在第一次打包小米渠道包并测试的时候会发现调用登录函数之后并没有显示小米的登录界面,而是直接回调了登录失败函数。但是其他的渠道包却又正常登录,说明母包代码写的没有问题,这是为什么呢?

其实原因出在小米的特殊设计上面,很多渠道都要求开发者提交渠道包的时候要修改包名为固定渠道标志字符串结尾,小米也是一样,小米渠道规定要上传的apk包名必须以mi结尾。

但是在小米后台的包名配置界面却没有提示,很多开发者在配置应用信息的时候在此处配置的是母包的原始包名,但是真正打渠道包的时候又添加了mi结尾,导致打出的渠道包包名与后台配置包名不匹配,而小米的SDK内部设计即是在登录前检测当前包名是否跟服务器后台配置一致,如果不一致则直接返回登录失败并且不显示登录界面,因此就有了这个问题。只要保证小米开发者后台配置的包名跟实际打出的渠道包包名一致就可解决。

悬浮窗没有显示是什么原因?

目前很多渠道SDK都增加了一个悬浮窗功能,即在游戏运行后界面商会显示一个半透明的悬浮窗按钮,点击之后可展开,里面容纳了若干SDK相关的功能选项。而渠道在审核包的时候也会检查开发者是否正确接入了SDK悬浮窗功能。

但是各家渠道在悬浮窗功能设计上遵循的观念却又有区别,有些SDK是只要开发者初始化完成或者登录成功后SDK自动就会显示悬浮窗,而另一些SDK却需要开发者登录成功后手动调用相应的控制函数来显示和隐藏悬浮窗,如果开发者忘记调用控制函数的话虚浮窗是不会自动显示出来的。因此开发者在接入AnySDK Framework的时候要判断当前渠道SDK是否支持showToolBar和hideToolBar函数并在登录成功后调用相关函数。

另外,目前有越来越多的渠道开始规定开发者必须在渠道后台配置应用包名,SDK只有在检测到当前包名跟管理后台配置的包名匹配的时候才能显示悬浮窗,否则即使登录成功或者调用了显示悬浮窗的函数也无法正确显示悬浮窗。

典型的例子就是360渠道,目前360SDK内部已经需要检测包名匹配之后才能够显示悬浮窗,但是在360的开发者管理后台却没有任何地方可以配置这个应用包名,必须要开发者去联系360的技术支持或者运营人员才可以通过他们去360服务器配置正确的包名来显示悬浮窗。

支付界面没有显示支付方式?

有些开发者在打包渠道包成功后调用支付函数,显示出的SDK支付界面上却提示没有可用的支付方式,因此怀疑是不是有参数没有正确配置导致无法支付,常出现此问题的渠道有UC和安智等。

其实这种情况出现的原因是这些渠道需要在开发者后台配置当前游戏需要启用的支付方式,开发者如果没有配置任何一种支付方式,那么SDK支付界面就不会显示正确的支付界面。此时需要开发者联系渠道商务或者运营去帮忙配置相关的支付方式即可正确开启支付功能。

微信分享失败?

很多开发者在集成了分享功能之后发现其他分享方式都能够正确分享,只有微信分享一直不成功。

这是因为微信分享限制比较多,在微信开发者后台有两个比较重要的参数需要配置,第一个就是应用包名,第二个就是签名文件md5。微信的SDK进行分享的时候会检测当前的应用包名跟签名文件的md5值是不是跟后台配置的完全一致。如果有任何一项不匹配就会分享失败。因此如果开发者要测试微信分享功能,需要在打包工具里配置签名文件为微信后台注册的那个签名文件再打包。

支付提示参数缺失?

有一些开发者在测试支付功能的时候会遇到两种提示支付参数不完整的情况。

第一种是在调用支付函数之后直接回调支付失败,log提示“param incomplete”,这种情况是因为开发者在调用函数的时候传入的商品信息中缺失了某些参数,此时需要对照 http://docs.anysdk.com/IAPSystem#.E6.94.AF.E4.BB.98这份文档中列出的商品信息参数来确定代码中有哪些参数尚未传入。

第二种是调用了支付函数后正确打开了SDK支付界面,但是SDK弹出toast提示商品信息不完整,这种情况是因为有些渠道需要开发者在渠道的开发者管理后台去配置当前游戏内的商品列表,并为每一个商品生成一个ID序号,开发者在调用支付的时候需要将此序号作为商品ID参数传入SDK才可以正确获取商品信息并支付。

OPPO显示商品名称不正确?

开发者在第一次打包OPPO渠道测试支付时会发现,在其他渠道支付界面上显示正常的商品名称信息在OPPO渠道SDK的支付界面却出现了问题。

比如当前游戏内有一个商品叫10金币,价值10元,玩家购买后在游戏内会增加10个金币。那么在通常情况下此商品的信息参数里product_name为“10金币”,product_price为10,product_count为1 即可。

但是OPPO的SDK设计比较特殊,它支付界面上显示的商品名称却是 product_count + product_name,因此如此配置的话在界面上显示的就会是“110金币”这样。因此,开发者必须在代码中判断如果是OPPO渠道包,传入商品参数的时候应该将product_name设置为“金币”,product_count设置为“10”,product_price设置为“1”才可以正确的显示商品名称并计费。

华为支付失败,无法弹出支付界面?

目前有开发者遇到在测试华为渠道包的时候调用支付函数但是无法显示华为的支付界面,而是直接失败的情况。这是因为华为SDK支付需要玩家手机上安装有“快捷支付 – 华为应用市场”这个应用才可以正常支付。如果SDK没有自动弹出安装界面,请开发者自行下载安装,然后再次测试支付。