Qt/C++ FireBase只能在调试模式下工作
问题描述:
我正在尝试使Qbase上的Firebase工作(based on this link)。Qt/C++ FireBase只能在调试模式下工作
当我在'发布模式'上部署时,应用程序会在初始化Firebase后立即崩溃。 奇怪的是,有时使用调试模式。
这是我的步骤(based on this link)
1)创建一个火力点的应用对象,
void FBListener::start_interface()
{
_jniEnv = new QAndroidJniEnvironment();
QAndroidJniObject jniObject = QtAndroid::androidActivity();
::firebase::App *instance = ::firebase::App::GetInstance();
if (instance) {
_app = instance;
} else {
_app = ::firebase::App::Create(*_jniEnv, jniObject.object<jobject>());
}
}
2 - 初始化
static ::firebase::InitResult _InitializeMessaging(::firebase::App *app, void *)
{
NotificationHandler *handler = NotificationHandler::GetInstance();
return ::firebase::messaging::Initialize(*app, handler->GetListener());
}
void FBListener::InitializeMessaging()
{
// I think that the problem is here
_initializer.Initialize(_app, nullptr,_InitializeMessaging);
}
3 - 这里的应用程序崩溃,如果工作发布模式。如果在调试模式下,我得到令牌。
FBListener::FBListener()
{
start_interface();
}
这与代码github上,我使用github
有人能指出我的方向?
我的设置:
- Qt Creator的4.3.1 - 的Qt 5.9.0
- Java版本 “1.8.0_131”
- 的Java(TM)SE运行时环境(建1.8.0_131 -B11)
- 爪哇热点(TM)64位服务器VM(生成25.131-B11,混合模式)
- Android编译SDK - 机器人-24
- 手机安卓4.4.2 - 谷歌Play服务,02年3月11日 - ABI:armeabi-V7A
- Android的工作室:
SDK平台和工具:
答
将问题解决后,将QAndroidJniObject jniObject
移动到标题:
头:
private:
QAndroidJniObject jniObject;
CPP:
void FBListener::start_interface()
{
...
jniObject = QtAndroid::androidActivity();
_app = ::firebase::App::Create(::firebase::AppOptions(), *_jniEnv, jniObject.object<jobject>());
}