У меня проблема с вызовом функции из cocos2d-x (C ++) в Android Native (Java) в режиме выпуска.
В cocos2d-x у меня есть функция: logInToGamePlayServices , которая будет вызывать функцию на стороне Java, начиная вход в службу Game Play. Работает нормально в режиме отладки. Но когда я делаю сборку релиза для загрузки в хранилище, эта функция не срабатывает.
Настройки моей сборки:
Версия SDK для компиляции: API 27: Android 8.1 (Oreo)
Целевая версия SDK: API 27: Android 8.1 (Oreo)
Минимальная версия SDK: API 15: Android 4.0.3 (IceCreamSandwich)
Версия инструмента сборки: 28.0.3
NDK: android-ndk-r16b
Cocos2d-x: v3.17
C ++:
#include "platform/android/jni/JniHelper.h"
#include <jni.h>
USING_NS_CC;
void NativeHelper::logInToGamePlayServices() {
JniMethodInfo methodPlayGame;
if (JniHelper::getStaticMethodInfo(methodPlayGame, "games/core/CoreActivity", "logInToGamePlayServices", "()V")) {
methodPlayGame.env->CallStaticVoidMethod(methodPlayGame.classID, methodPlayGame.methodID);
}
}
Родной Android:
package games.core;
public class CoreActivity extends Cocos2dxActivity {
public static void logInToGamePlayServices() {
_shareInstance.runOnUiThread(new Runnable() {
public void run() {
Intent signInIntent = _shareInstance.mGoogleSignInClient.getSignInIntent();
_shareInstance.startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
}
}