Unity对接应用宝SDK(YSDK)

之前接过MSDK,现在新的项目需要接YSDK。记录下对接过程遇到的问题。

总所周知,应用宝的SDK的文档都写得比较好,仔细阅读文档肯定是必要的,接的过程应该也会比(ru)较(ci)顺(cao)利(dan)。

开始了。

1、配置应该没什么好说,按照文档说的添加就可以了。

2、引入库,因为客户端用的是android studio,所以我这里用到的是aar文件。用jar也一样。文档只说需要引入aar,但是结果在初始化的时候会闪退。报错:Didn't find class "com.tencent.ysdk.framework.hotfix.impl.Fix"。根据网友提供的解决方案,将aar改成zip解压出来,里面有个classes.jar,把他改成zip再解压出来,把assets目录下的东西拷贝到游戏工程的assets目录。解决方案地址:https://blog.csdn.net/qq_35581716/article/details/73550808

3、Step5. YSDK生命周期设定。一般接sdk,会自己创建一个activity,继承UnityPlayerActivity作为启动activity,也只会用到这一个activity。应用宝这里需要用到两个activity,Launcher Activity和Main Activity。这里一定要看清楚。仔细对照demo就能理解什么是Launcher Activity和Main Activity

4、登录无回调。这里有个巨坑,看了不下十遍文档,一遍一遍的检查无回调的情况,始终还是没回调。后来在文档中看到这样一段内容

Unity对接应用宝SDK(YSDK)_第1张图片

然后想起手机的日志里面有句"...so is bad"(不是报错不是警告,仅仅只是一个普通的log)。于是我也加了上面的代码,结果报错找不到libYSDK.so文件,然后又从aar中YSDK_Android_1.4.5_1078\jni\armeabi目录下找到so文件放到游戏工程。再打包,结果还是找到文件。解压apk包,发现so文件并没有打包进来。后来,先用unity导出as工程(工程中没有libYSDK.so),这时候再把so拷贝到src/main/jniLibs/armeabi-v7a,再出apk包。运行没有闪退,点击登录!卧槽,有回调了

我用的unity2017.4.17

5、支付。登录解决,那么工程就没什么问题了。支付这里有个代币图标二进制的参数。

Bitmap bmp = BitmapFactory.decodeResource(mMainActivity.getResources(), R.drawable.sample_yuanbao);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] appResData = baos.toByteArray();

遇到R文件没生成的情况也是挺烦人,不过可以用另外一个办法

int iconId = this.getResources().getIdentifier(iconResName,"drawable", this.getPackageName());
Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), iconId);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] appResData = baos.toByteArray();

通过代币图的名字可以找到。

6、安卓8.0的手机上,支付闪退。

闪退日志:Only fullscreen activities can request orientation

去掉米大师配置中的屏幕方向。改为如下。

参考文章:https://blog.csdn.net/cheng219101/article/details/88971991

7、没了

你可能感兴趣的:(unity)