Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的SDL2事件循环-无法将任何新事件推送到队列中_Android_Android Ndk_Sdl - Fatal编程技术网

Android上的SDL2事件循环-无法将任何新事件推送到队列中

Android上的SDL2事件循环-无法将任何新事件推送到队列中,android,android-ndk,sdl,Android,Android Ndk,Sdl,我正在尝试在我的新Android应用程序中使用SDL2,它应该可以很好地工作: 它编译时没有任何问题,并且有一个示例项目,因此开始使用它非常容易。我编译了库并从我的应用程序开始,创建了一个事件循环-如SDL 1.2中所述,并尝试通过函数将一些事件推入其中: int SDL_PushEvent(SDL_Event * event); 但是,它总是失败,错误值为-1。我刚刚为此源文件定义了SDL_main函数: My SDL_main函数包含简单的事件循环: SDL_Event event;

我正在尝试在我的新Android应用程序中使用SDL2,它应该可以很好地工作:

它编译时没有任何问题,并且有一个示例项目,因此开始使用它非常容易。我编译了库并从我的应用程序开始,创建了一个事件循环-如SDL 1.2中所述,并尝试通过函数将一些事件推入其中:

int SDL_PushEvent(SDL_Event * event);
但是,它总是失败,错误值为-1。我刚刚为此源文件定义了SDL_main函数:

My SDL_main函数包含简单的事件循环:

SDL_Event event;

for (;;)
{
    SDL_WaitEvent(&event);
    switch (event.type)
    {
case SDL_QUIT:
    return;
    case SOME_EVENT:
        break;
    default:
        break;
    }
}
就是这样,没有线程,没有互斥,没有等待,只有一个简单的主函数。我注意到我的事件循环处理一些事件,它们的event.type等于2151293988,看起来它们的源代码是SDLSurface实例,它是在Java代码中创建的:


为什么
SDL\u PushEvent
功能不起作用?有人知道会出什么问题吗

SDL队列在初始化后不会自动启动,必须通过调用
SDL_StartEventLoop()显式启动它

看来我找到了原因。队列刚刚开始!我认为队列在初始化时会自动运行SDL2。。。我添加了
SDL_StartEventLoop()调用主函数,它现在可以工作了-我的生命中几乎五个小时都没有了这样一点遗漏。。。