Skip to content

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签名,同微信/支付宝后台申请参数上传的包体使用一致。

版权所有© 2021-2030 上海丞诺网络科技有限公司