2017-01-28 5 views
0

Я также пытаюсь запустить свою игру на Android, и приложение начнет работать с самого начала. На iOS все работает отлично. Я должен упомянуть, что я использую предварительно созданные библиотеки. Я попытался запустить приложение Hello World, и все работает отлично, но когда я пытаюсь с моей игрой, он падает, и я понятия не имею, почему. Я уже потратил 2 дня на это.Cocos2d-x 3.14 Android crash

I/InstantRun: мгновенный запуск. Android-пакет - com.Organization.MyGame, настоящий класс приложения - null. W/art: Проверка 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 $ super (org.cocos2dx. cpp.AppActivity, java.lang.String, java.lang.Object []) принял 209.483ms Д/JniHelper: JniHelper :: setJavaVM (0xb4dbc000), pthread_self() = -1225696460 Д/Основной: cocos_android_app_init Д/Cocos2dxHelper : isSupportLowLatency: false D/Cocos2dxHelper: sampleRate: 44100, framesPerBuffer: 102 D/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp: native SetAudioDeviceInfo: SAMPLERATE: 44100, bufferSizeInFrames: 1024 Вт/искусство: Проверка java.lang.Object org.cocos2dx.lib.ResizeLayout.access $ супер (org.cocos2dx.lib.ResizeLayout, java.lang.String, java.lang.Object []) занял 574.918мс W/art: Проверка java.lang.Object org.cocos2dx.lib.Cocos2dxEditBox.access $ super (org.cocos2dx.lib.Cocos2dxEditBox, java.lang.String , java.lang.Object []) занял 364.627мс W/art: Проверка java.lang.Object org.cocos2dx.lib.Cocos2dxGLSurfaceView.access $ super (org.cocos2dx.lib.Cocos2dxGLSurfaceView, java.lang. String, java.lang.Object []) взято 225.880ms W/art: Проверка булева org.cocos2dx.lib.Cocos2dxGLSurfaceView.onTouchEvent (android.view.MotionEvent) принял 235.323ms D/Cocos2dxActivity: Модель = sdk_google_phone_armv7 D/Cocos2dxActivity: Продукт = sdk_google_phone_armv7 D/Cocos2dxActivity: isEmulator = истинное Вт/искусство: проверка . аннулируются org.cocos2dx.lib.Cocos2dxVideoHelper (org.cocos2dx.lib.Cocos2dxActivity, android.widget.FrameLayout) принял 144.700ms D/Cocos2dxActivity: onResume() D/OpenGLRenderer: Используйте EGL_SWAP_BEHAVIOR_PRESERVED: истинные

   [ 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, error = EGL_BAD_MATCH I/Хореограф: пропущено 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 

адр 0x0 в TID 2433 (GLThread 123) отсоединен от целевого VM, адрес: 'локальный: 8650', транспорт: 'гнездо'

Любая помощь будет оценена. Большое спасибо!

ответ

0

Итак, я потратил много времени, и это была действительно простая проблема, просто не поняла. Проблема заключалась в том, что для Android мне пришлось добавлять пути поиска или указывать полный путь для всех ресурсов.

1

Почему это происходит? Я нашел следующее:

EGL_BAD_MATCH генерируется, если атрибут EGL_SWAP_BEHAVIOR, значение EGL_BUFFER_PRESERVED, а атрибут EGL_SURFACE_TYPE из EGLConfig используется для создания поверхности не содержит EGL_SWAP_BEHAVIOR_PRESERVED_BIT.

Ссылка: eglSurfaceAttrib Группа khronos - это некоммерческая организация, предоставляющая стандартный интерфейс OpenGL.

Как вы это решаете? В вашем Android-эмуляторе вы можете использовать встроенную (аппаратную) графическую карту. Надеюсь, this помогает.

+0

Я уже пробовал это ... – Eduard

0

К сожалению, у меня недостаточно отзывов, чтобы комментировать ваш вопрос.

Возможно, это может быть проблема с предварительно созданными библиотеками, поэтому вы можете попробовать создать новый проект, не используя предварительно построенные библиотеки, и посмотреть, разрешит ли он это. Если это так, это проблема с pre-builts, в противном случае это может быть проблема с любым кодом, с которого вы запускаете. Если это так, если бы вы могли обновить свой вопрос своим кодом, это было бы здорово!

+0

Это не проблема с библиотеками prebuit, потому что мне удалось запустить с ними простой проект. Кроме того, тот же код этой игры использовался и для не-готовых библиотек. Я думаю, что мне не хватает чего-то другого ... – Eduard