一:交互代码示例:
1.游戏调用安卓代码样例:
由于cocos只能调用静态方法,所有sdk方法已经封装SDKHelper类里,反射调用SDKHelper即可,方法名与文档一致
const CLASS = 'com/xy/fusiontsjl/SDKHelper'; // 注意是 / 不是 . ,不带 .java
function callStatic(method: string, sig: string, ...args: any\[\]) {
if (sys.isNative && sys.platform === sys.Platform.ANDROID && jsb.reflection) {
jsb.reflection.callStaticMethod(CLASS, method, sig, ...args);
} else {
console.warn('SdkBridge 非 Android 原生环境,跳过', method);
}
}
1.1无参数时
export const sdkLogin = () => callStatic('SDKLogin', '()V');
1.2 有参数时
export const sdkPay = (json: string) => callStatic('SDKPay', '(Ljava/lang/String;)V', json);
2.安卓 回调 游戏代码样例:
### Cocos 回调约定 SDK 在原生侧产生回调后,会将结果透传给 Cocos 游戏层统一回调入口: `window.GameSdkCallback(methodName, data)` 其中: - `methodName` 为回调事件名 - `data` 为回调附带的数据字符串,通常为 JSON 字符串 游戏侧需要在脚本初始化阶段注册该全局方法,用于统一接收 SDK 回调。 原生侧在调用前会先判断该方法是否存在;若未注册,则本次回调会被忽略,不会抛出脚本错误。
例:写在com.cocos.game.AppActivity里
public void sendCallback(String methodName, String data) {
final String script = "window.GameSdkCallback&&window.GameSdkCallback("
- JSONObject.quote(methodName) + "," + JSONObject.quote(data == null ? "" : data) + ");";
CocosHelper.runOnGameThread(() -> CocosJavascriptJavaBridge.evalString(script));
}
回调方法methodName声明与文档中一致,demo里在下图:

二:编译aar注意事项
1、谷歌要求最新提审包targeVersion设置为36
2、将游戏项目导出为安卓工程
3、所有接入sdk代码已接入完毕,无需再接入第二次:
cocos游戏入口文件:com.cocos.game.AppActivity(在app层)
4、cocos注意事项
4.1 导出完成后,用androidStudio打开项目build->android->proj
4.2 谷歌要求升级targret到36,下方这里需修改为:https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip

下方这里classpath 'com.android.tools.build:gradle:8.10.0'

这里改为compileOnly

下方这里修改为36

删掉下方下AndroidManifest里标签intent-filter部分,
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

修改下方为apply plugin: 'com.android.library',注释 apply plugin: 'com.android.application'

注释掉 shrinkResources true

4.4 在AppActivity文件里添加回调方法sendCallback,可以参考demo里的GameMainActivity,直接copy,把注释的部分打开,修改完备份一下AppActivity文件,下次导出工程时替换这个文件。

5、生成aar:
打开 Settings→ Experimental
确认勾选:Configure all Gradle tasks during Gradle Sync (this can make Gradle Sync slower)
改完点下方红色按钮编译一下才会生效

点击下图红色按钮编译aar

cocos生成aar:
cocos需要生成三个aar,点击这三个库下的assemble按钮

三个aar在下方的build->outputs->aar目录下

6、demo调试
6.1 将生成的aar文件放入demo的app目录下libs文件夹,然后编译一下
6.2 把MainActivity继承类改为游戏入口文件,cocos是AppActivity

6.3 直接运行测试