我试图让Firebase在Qt(based on this link)上运行。
当我部署'发布模式'时,应用程序会在firebase初始化后立即崩溃。 奇怪的是,有时使用调试模式。
这是我的步骤(based on this link)
1)创建一个firebase应用程序对象,
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有人能指出我的方向吗?
我的设置:
Sdk平台和工具:
答案 0 :(得分:0)
问题解决了将QAndroidJniObject jniObject
移到标题:
头:
private:
QAndroidJniObject jniObject;
CPP:
void FBListener::start_interface()
{
...
jniObject = QtAndroid::androidActivity();
_app = ::firebase::App::Create(::firebase::AppOptions(), *_jniEnv, jniObject.object<jobject>());
}