常见问题

1 编译不通过

在合成SDK时,会出现编译不通过对问题,通常都是Android SDK版本的过高引起的,解决问题方案如下:


compileSdkVersion 22
buildToolsVersion "23.0.2"
defaultConfig {
    minSdkVersion 16
    targetSdkVersion 22
}

将编译和目标版本降到22,之所以这么做是为了避免做权限判断

2 获取IMEI码报错

一般是由于Android SDK版本过高取不到权限引起的,解决方案如下两种:

  • 降低SDK版本

compileSdkVersion 22
buildToolsVersion "23.0.2"
defaultConfig {
    minSdkVersion 16
    targetSdkVersion 22
}
  • 增加权限

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
   ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 26);
} else {
   //选判断权限 有权限了再调用用户初始化页面
   BadamSdk.getInstance().enterBadamSdk(Activity activity);
}

3 调用悬浮窗时报错

3.1 现象

报如下错误:


Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sytx.zp.mlzj/com.ziipin.badamsdk.ui.PersonalCenterActivity}: 
android.view.InflateException: Binary XML file line #241: Error inflating class android.support.v7.widget.RecyclerView

3.2 解决方案

由于着不到RecyclerView,增加依赖就好了,如下:


compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'

4 Oppo等一些特殊机型上面收不到回调

4.1 表现

客户端调用SDK,登录的时候一直停留在登陆页面,没有任何的反应,通过日志显示:


MainActivity.java-75 MainActivity  requestCode=170   resultCode=0  data = null

可以看到SDK并没有返回回调,所以客户端就没有办法处理了。

4.2 解决方案

跟踪发现,CP在接入的时候加入了启动模式,如下:


<activity
    android:name="com.ziipin.pay.sdk.library.ui.FragmentContainerActivity"
    android:launchMode="singleInstance"
    android:theme="@style/myTransparent" />

应该去除掉启动模式,操作如下:


<activity
    android:name="com.ziipin.pay.sdk.library.ui.FragmentContainerActivity"
    android:theme="@style/myTransparent" />

5 点击试玩,提示“Uuid(必填)”

  • 问题描述

在普通SDK入口页面,点击试玩,提示Uuid(必填),导致无法以游客的身份进入游戏。

  • 解决方案

出现这种问题,是因为在调用如下接口

BadamSdk.getInstance().enterBadamSdk(Activity activity);

时 activity为null导致的,所以在调用的时候需要确保activity不为null,加一个判断就好了;

6 通过模块依赖的方式接入找不到SDK包

  • 问题描述

有一些CP厂商在接入第三方SDK的时候,都将第三方SDK作为一个独立模块,主模块依赖这些模块开发,这个时候可能会出现找不到BadamSDK包的情况。

  • 解决方案

参考Android Studio版本Demo的实现方式,其中README.md第二点做了具体说明;

或者

android-fat-aar的方式去是多个模块的构建和打包;

7 Google 登录报“signInResult:failed code =10”错误

  • 问题描述

错误提示如下图: 错误提示图

通过查看官方文档发现错误码为10,表示DEVELOPER_ERROR,这是什么错误呢?仔细阅读文档发现就是配置错误,配置错误有如下几种可能:

1、SERVER_CLIENT_ID填写错误;
2、应用包名没有对应上;
3、SHA-1指纹没有对应上;

前面两个很好排查,比对一下就知道对不对了,最关键的是第三项,真是深受其害啊,被队友坑得不要不要的,这里就不再过多吐槽了。但是,一定要确保配置到谷歌后台的指纹和APK打包的指纹是一致的,不然就会报code码为10的错,切记,这个非常重要!!!

  • 解决方案

查看游戏APK的SHA-1指纹信息,方法如下:

用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件,
通过keytool -printcert -file META-INF/CERT.RSA命令打印证书信息.

通过上面的方法,查看SHA-1指纹信息,将APk的指纹和谷歌账号配置的设置成同一个,保存配置信息,问题得到完美解决。

results matching ""

    No results matching ""