Android常见问题
问1:minSdkVersion有什么要求?
答1:最低21
问2:targetSdkVersion有什么要求?
答2:建议保持targetSdkVersion<=32
问3:SDK接入完成后,测试时手机及网络有什么要求?
答3:
1、建议使用海外机型进行测试,国内外机型存在较大差异,可能导致测试结果不准确(如:国内机型安装Google框架存在稳定性问题从而导致Google功能使用异常)
2、建议测试时使用的网络环境所属的国家和地区要在应用发布的国家或者地区范围内
3、建议测试Google功能时先把Google play service的版本更新至最新
问4:Google Play内购测试怎么设置测试账号?
答4:
1、进入应用版本-具体发布渠道(如Alpha版)-管理测试人员,可以修改、添加测试人员账号
2、将【加入测试的网址】分享给测试人员访问,二次确认后才可以真正加入测试
问5:Google Play内购测试怎么设置沙盒账号?
答5:在 Developer Console 中,转到 Settings > Account details,然后在 License Testing 部分将相应地址添加到 Gmail accounts with testing access 字段并保存
问6:Google登录和支付对应用签名有什么要求?
答6:
1、支付与登录的API密钥证书、应用的密钥证书、打包使用的证书,三个必须一致,否则会有无法登录与无法支付的问题
2、配置中涉及到填写sha-1值的地方,都要填写最终签名证书的sha-1值
3、上传的APK包必须要有签名,而且不能用debug签名
4、不建议使用googleplay后台的签名托管服务,会导致签名混乱(如开启此服务后,操作不可逆)
问7:Android打包工具使用是遇到brut.androlib.AndroidException:brut.common.BrutException怎么解决?
答7:删除..\apktool\framework\1.apk(C:\Users\Administrator\AppData\Local\apktool\framework\1.apk)后重试
问8:Google登录常见错误码及解决办法
答8:
错误码 | 报错原因 | 解决方案 |
---|---|---|
12500 | SIGN_IN_FAILED(登录失败) | Google play service的版本更新至最新 |
12501 | SIGN_IN_CANCELLED (登录取消) | 无 |
12502 | SIGN_IN_CURRENTLY_IN_PROGRESS(用户多次单击 SignInButton 并且启动了多个登录意图) | 无 |
10 | DEVELOPER_ERROR(配置异常) | 检查Google登录的配置,确保正确 |
问9:Google支付常见错误码及解决办法
答9:
错误码/信息 | 报错原因 | 解决方案 |
---|---|---|
3 | GooglePlay In-app Billing API version is less than 3 | 1、手机没有 google 服务/商店 2、google 服务/商店版本过低 3、账号问题,看gp后台发布的地区是否包含google账号的地区(需注意:账号必须是非大陆地区账号) |
6 | 设备 Google 设置问题,网络问题 | 1、确保连接 VPN,能开启 google 商店 2、开启 google 商店权限:后台弹出界面 |
商品无法购买 | 能够查询价格,但无法购买,提示"商品无法购买"之类 | 1、版本号与线上版本不对应 2、签名不对应 |
authentication is required. you need to sign into your google account | authentication is required. you need to sign into your google account | 1、包没有发布到Google Play商店中(alpha测试) 2、发布到alpha测试后没有添加添加测试账号 3、包名与发布到Google Play商店中的包名不相同 4、购买的商品的sku不存在于Google Play商店中已添加的商品列表中 |
问10:SDK支持绑定账号功能么?
答10:支持的,如果游戏直接用SDK的界面进行绑定,可以调用打开用户中心界面接口enterUserCenter;如果游戏想自己实现界面只调用绑定接口,可以调用绑定账号接口bindPlatform
问11:游客在操作绑定第三方账号功能时,为什么出现无法绑定的问题?
答11:如果第三方账号已经登录过游戏,就不能再被游客绑定了
问12:Google Play内购商品支持哪些种类?
答12:目前只支持消耗品
问13:安卓targetSDKVersion≥28版本SDK适配注意点?
答13:
在项目res目录下创建xml目录,然后随便创建一个network_security_config.xml文件,里面内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在AndroidManifest.xml文件下加上: android:networkSecurityConfig="@xml/network_security_config"
<application
... //游戏自己的配置
android:networkSecurityConfig="@xml/network_security_config">
问14:应用中的Dex文件方法数超过了65535的上限,改怎么配置?
答14:
1、首先在模块/build.gradle文件中配置,如下:
android {
defaultConfig {
... //项目其他配置
multiDexEnabled true // 设置支持multidex
}
}
dependencies {
implementation 'com.android.support:multidex:1.0.1'
}
2、项目的Application继承MultiDexApplication,如下:
package ...;
import android.support.multidex.MultiDexApplication;
/**
* Extended MultiDexApplication
*/
public class MyApplication extends MultiDexApplication {
//..........
}
问15:添加Facebook Sdk 后打包出现以下错误解决方案?
Manifest merger failed : Attribute application@supportsRtl value=(false) from AndroidManifest.xml:19:9-36
is also present at [com.facebook.android:facebook-login:8.1.0] AndroidManifest.xml:28:18-44 value=(true).
Suggestion: add 'tools:replace="android:supportsRtl"' to <application> element at AndroidManifest.xml:12:5-42:19 to override.
答15:需要在AndroidManifest.xml的application标签下添加:
<application
... //游戏自己的配置
tools:replace="android:supportsRtl">
问16:添加 Line Sdk 后打包出现以下错误解决方案?
Manifest merger failed with multiple errors, see logs
答16:需要在AndroidManifest.xml的application标签下添加:
<application
... //游戏自己的配置
tools:replace="android:allowBackup,android:supportsRtl">
问17:Unity针对Android 11 构建需要注意啥?
答17:请参照官方文档
问18:接入line登录和snapchat登录需要注意啥?
答18:
1、去除mavenCentral()引用,因为line官方还没迁移,会导致报错
2、gradle版本要改为大于等于3.6.0
3、java版本要配置为1.8
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
问19:Gradle 7.0以上引入依赖构建失败
答19:
1、找到项目的settings.gradle文件
2、对dependencyResolutionManagement节点下内容进行修改
将repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)修改为:
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)或
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
3、在dependencyResolutionManagement->repositories节点下添加仓库地址
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
repositories {
google()
mavenCentral()
//TOPSdk
maven { url 'https://storage-sdk-gameplus.meetsocial.com/repository/TopSdk/'}
//Snapchat
maven { url 'https://storage.googleapis.com/snap-kit-build/maven' }
//kakao
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
//华为渠道配置
maven { url 'https://developer.huawei.com/repo/' }
//onestore渠道配置
maven { url 'https://repo.onestore.co.kr/repository/onestore-sdk-public/' }
}
}