Я пытаюсь запустить свою игру на Android, и приложение вылетает при запуске. На iOS все работает отлично. Я должен упомянуть, что я использую готовые библиотеки. Я попытался запустить приложение Hello World, и все работает отлично, но когда я пытаюсь с моей игрой, она вылетает, и я понятия не имею, почему. Я уже потратил 2 дня на это.
I / InstantRun: Мгновенный запуск Runtime запущен. Пакет Android является
com.Organization.MyGame, класс реального приложения равен нулю. Вт / искусство:
Проверка void org.cocos2dx.lib.Cocos2dxActivity. () Заняла
181,649мс W / art: проверка java.lang.Object org.cocos2dx.lib.Cocos2dxActivity.access $ super (org.cocos2dx.lib.Cocos2dxActivity,
java.lang.String, java.lang.Object []) заняло 263,417 мс W / art:
Проверка java.lang.Object
org.cocos2dx.cpp.AppActivity.access $ супер (org.cocos2dx.cpp.AppActivity,
java.lang.String, java.lang.Object []) занял 209,483ms D / JniHelper:
JniHelper :: setJavaVM (0xb4dbc000), pthread_self () = -1225696460 D / main:
cocos_android_app_init D / Cocos2dxHelper: isSupportLowLatency: false
D / Cocos2dxHelper: sampleRate: 44100, кадровPerBuffer: 1024
D / Java_org_cocos2dx_lib_Cocos2dxHelper.cpp: nativeSetAudioDeviceInfo:
sampleRate: 44100, bufferSizeInFrames: 1024 Вт / art: Проверка
java.lang.Object
org.cocos2dx.lib.ResizeLayout.access $ супер (org.cocos2dx.lib.ResizeLayout,
java.lang.String, java.lang.Object []) заняло 574,918 мс с искусством:
Проверка java.lang.Object
org.cocos2dx.lib.Cocos2dxEditBox.access $ супер (org.cocos2dx.lib.Cocos2dxEditBox,
java.lang.String, java.lang.Object []) заняло 364,627 мс W / art:
Проверка java.lang.Object
org.cocos2dx.lib.Cocos2dxGLSurfaceView.access $ супер (org.cocos2dx.lib.Cocos2dxGLSurfaceView,
java.lang.String, java.lang.Object []) заняло 225,880 мс W / art:
Проверка логического
org.cocos2dx.lib.Cocos2dxGLSurfaceView.onTouchEvent (android.view.MotionEvent)
потребовалось 235,323мс D / Cocos2dxActivity: model = sdk_google_phone_armv7
D / Cocos2dxActivity: product = sdk_google_phone_armv7 D / Cocos2dxActivity:
isEmulator = true W / art: проверка пустоты
org.cocos2dx.lib.Cocos2dxVideoHelper. (org.cocos2dx.lib.Cocos2dxActivity,
android.widget.FrameLayout) заняло 144.700 мс D / Cocos2dx
onResume () D / OpenGLRenderer: использовать EGL_SWAP_BEHAVIOR_PRESERVED: true[ 01-28 16:43:39.386 2413: 2413 D/ ] HostConnection::get() New Host Connection established 0xabcc3490, tid 2413[ 01-28 16:43:39.419 2413: 2413 W/ ] Process pipe failed [ 01-28 16:43:40.071 2413: 2434 D/ ] HostConnection::get() New Host Connection established 0xabcc3308, tid 2434 I/OpenGLRenderer: Initialized EGL,
версия 1.4 E / EGL_emulation: tid 2434: eglSurfaceAttrib (1165): ошибка
0x3009 (EGL_BAD_MATCH) W / OpenGLRenderer: не удалось установить
EGL_SWAP_BEHAVIOR на поверхности 0xab55dc60, ошибка = EGL_BAD_MATCH
Я / Хореограф: пропущено 236 кадров! Приложение может делать тоже
много работы над своей основной темой. D / Cocos2dxActivity:
onWindowFocusChanged () hasFocus = true I / Хореограф: пропущено 41
кадры! Приложение может делать слишком много работы на своем основном
нить.[ 01-28 16:43:45.183 958: 988 D/ ] HostConnection::get() New Host Connection established 0xabcc7e10, tid 988 A/libc: Fatal signal 11 (SIGSEGV), code 1, fault
addr 0x0 в tid 2433 (GLThread 123) отключен от целевой виртуальной машины,
адрес: ‘localhost: 8650’, транспорт: ‘socket’
Любая помощь будет оценена. Большое спасибо!
Почему это происходит? Я нашел следующее:
EGL_BAD_MATCH генерируется, если атрибут EGL_SWAP_BEHAVIOR, значение
EGL_BUFFER_PRESERVED и атрибут EGL_SURFACE_TYPE для
EGLConfig, используемый для создания поверхности, не содержит
EGL_SWAP_BEHAVIOR_PRESERVED_BIT.
Ссылка: eglSurfaceAttrib Группа khronos — это некоммерческая организация, которая предоставляет стандартный интерфейс OpenGL.
Как вы решаете это? В вашем эмуляторе Android вы можете использовать встроенную (аппаратную) видеокарту. я надеюсь этот помогает.
К сожалению, у меня недостаточно репутации, чтобы прокомментировать ваш вопрос.
Это может быть проблемой с предварительно собранными библиотеками, поэтому вы можете попробовать создать новый проект без использования предварительно собранных библиотек и посмотреть, разрешит ли это его. Если это так, то это проблема с предварительными сборками, в противном случае это может быть проблема с любым кодом, с которым вы запускаете. Если это так, если бы вы могли обновить свой вопрос с помощью кода, это было бы здорово!
Так что я потратил много времени, и это была действительно простая проблема, просто не понял этого. Проблема заключалась в том, что для Android мне пришлось добавить пути поиска или указать полный путь для всех ресурсов.