Appearance
CocosCreator接入-Android平台配置
WARNING
在完成Cocos层API调用之后, 如果要出Android平台的apk包,还需要根据本文档做一些额外的配置
准备工作
CocosCreator中接入好api后,我们可以编译发布,导出Android Studio工程了。我们可以从SDKDemo中,将一些原生平台的资源文件拷贝到游戏工程:
1、SDKDemo/native/engine/android/app/libs: SDK的依赖库文件,拷贝到游戏工程导出的AS工程对应目录下;
2、SDKDemo/native/engine/android/app/src/com/cocos/game/UGSDKForCocos.java: 拷贝到游戏工程导出的AS工程对应目录下,该文件处理原生平台和cocos层的交互;
3、SDKDemo/native/engine/android/app/src/com/cocos/game/AppActivity.java: 拷贝到游戏工程导出的AS工程对应目录下,该文件中调用UGSDKForCocos封装好的api,以及在Activity对应生命周期中调用SDK的生命周期函数。
依赖配置
在游戏工程导出的AS工程/native/engine/android/app/build.gradle中添加gradle依赖库:
java
// SDK UI组件依赖
implementation 'androidx.fragment:fragment:1.2.0'
// 微信支付
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:+'
// 支付宝支付
implementation 'com.alipay.sdk:alipaysdk-android:+@aar'
// 阿里云本机号码一键登录/QQ登录 需要
implementation 'androidx.appcompat:appcompat:1.3.1'
// Tap登录需要
implementation 'com.taptap.sdk:tap-core:4.5.9'
implementation 'com.taptap.sdk:tap-login:4.5.9'
implementation 'com.taptap.sdk:tap-update:4.5.9'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'androidx.core:core:1.3.1'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
配置参数
打开AS工程/native/engine/android/app/src/com/cocos/game/UGSDKForCocos.java
文件, 将初始化参数对象UInitParams
中appID、appKey参数,改为你SDK后台该游戏对应的参数。
java
String appID = "1";
String appKey = "1111111";
UInitParams params = new UInitParams(appID, appKey, UInitParams.ORIENTATION_LANDSCAPE);//横竖屏, 横屏:UGInitParams.ORIENTATION_LANDSCAPE; 竖屏:UGInitParams.ORIENTATION_PORTRAIT
XPlatform.getInstance().init(context, params, ...);
启动类配置
打开AS工程/native/engine/android/app/AndroidManifest.xml
, 默认启动Activity是:com.cocos.game.AppActivity。
xml
<activity android:name="com.cocos.game.AppActivity" android:screenOrientation="sensorLandscape" android:configChanges="orientation|keyboardHidden|screenSize|screenLayout|smallestScreenSize" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:launchMode="singleTop" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
该类是Android原生层和Cocos层API交互的桥梁,如果游戏要调整启动类(比如增加隐私弹窗Activity),可以在这里进行调整。
Application配置
打开AS工程/native/engine/android/app/AndroidManifest.xml
, 默认配置的Application是:com.game.sdk.app.UGApplication。
xml
<application android:name="com.game.sdk.app.UGApplication" android:usesCleartextTraffic="true">
...
</application>
如果游戏有自己的Application, 那可以按Android接入文档中实现Application
模块的说明进行调整:Android接入配置
其他配置
如果开启了QQ登录,还需要配置QQ登录相关的AndroidManifest.xml:
xml
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--注意,这里的${qqAppID}要换成该游戏自己的QQ AppID-->
<data android:scheme="tencent${qqAppID}" />
</intent-filter>
</activity>
导出APK
上述操作之后,我们就可以导出APK了。 在Android Studio菜单-》Build-》Generate Signed Bundle/APK中进行导出。
WARNING
需注意:需要保证包名和keystore签名,同微信/支付宝后台申请参数上传的包体使用一致。