gpt4 book ai didi

Android SDL2 App黑屏然后退出

转载 作者:行者123 更新时间:2023-11-30 05:49:15 29 4
gpt4 key购买 nike

我有一个在 Windows 中运行的 SDL2 演示,但是当我将此代码移植到 Android 时,完成的应用程序将显示黑屏几秒钟,然后安静地退出(没有错误,什么都没有),而不是显示漂亮的测试图形在游戏循环中。

如果我添加一个调用 SDL_ShowSimpleMessageBox在我的 main 开始时,什么也没有发生(我知道它还没有为 Android 实现 - grrr),但是如果我注释掉我的主要代码,ndk-build 会提示它丢失了,所以它肯定被包含在构建,但似乎没有被调用。

我已按照 README-android.txt 中的步骤进行操作.经过过去 2 个月大约 200 个小时的解决问题后,我最终制作了一个 apk。我所做的以下修复是否可能损坏了某些东西?

第一个问题是 NDK-BUILD 找不到 SDL_config.h ,因为在 README-android.txt 中步骤 #2 的说明错了。修复了重组目录或编辑路径的问题 Android.mk .

第二个问题是 NDK-BUILD 找不到 EGL/eglplatform.h .通过添加 APP_PLATFORM := android-9 修复至 Application.mk .

第三个问题是 NDK-BUILD 无法识别 C++11,所以我添加了 APP_CPPFLAGS += -std=c++11Application.mk .

第四个问题是 NDK-BUILD 找不到 #include <cstdarg> (用于 va_listva_start )。包括<SDL.h>而是解决了这个问题。

Fith问题是ant建立failing at [aapt] Generating resource IDs .我在 Android SDK 管理器中通过删除构建工具版本 21.1.1 并安装版本 20 来修复此问题。

这是我第一次在这里发帖寻求帮助,因为我很绝望。我是一名经验丰富的 C++ 编码员,但在 Java 方面完全是新手。我在 Windows SDL2 的 eclipse 中使用 C++,我完全从命令行构建了 apk。

尝试了几种不同的设备。查看 logcat,有一个 signal 7 SIGBUS错误:

V/SurfaceView( 3497): Layout: x=0 y=0 w=1280 h=720, frame=Rect(0, 0 - 1280, 720)
F/libc ( 3497): Fatal signal 7 (SIGBUS) at 0x00000000 (code=128)
I/ActivityManager( 162): Displayed org.libsdl.app/.SDLActivity: +416ms
V/SDL ( 3497): onWindowFocusChanged(): true
W/InputManagerService( 162): Starting input on non-focused client
com.android.internal.view.IInputMethodClient$StubProxy@410b72d8 (uid=10021 pid=331)

最佳答案

我发现了问题。随意拍打我的手腕。

我在编码时总是假设我可以使用 8 位对齐的指针寻址内存。在过去的 25 年里,这对我一直有效,直到现在。我的代码在针对 Android 时失败,因为它使用的任何 CPU 都拒绝使用 8 位对齐的指针寻址内存。因此,一旦我沿着字节对齐的 butter 移动指针并将该指针转换为对象并引用该指针,BAM,android 就会安静地退出应用程序。

现在的问题是如何处理这个问题?它记录了我在过去 2 个月中遇到的所有问题和解决方案,所以一定对某人有用吗?

关于Android SDL2 App黑屏然后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832006/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com