常见问题
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的指纹和谷歌账号配置的设置成同一个,保存配置信息,问题得到完美解决。