2014-12-10 3 views
2

У меня есть приложение с пользовательским интерфейсом на основе cocos2d (https://code.google.com/p/cocos2d-android-1/), который отлично работает на некоторых телефонах, но на других отображается только черный экран с объявлением внизу. Когда появится черный экран, я все еще могу использовать приложение, если знаю, где нажать для определенной кнопки (но, очевидно, я ничего не вижу на экране, просто знаю, что кнопки работают).Cocos2d UI не отображается в Samsung S4

пример: S4 с SDK 4.3 - черный экран и только объявления отображается в нижней части, элементы управления все еще работают, так что если вы слепо знать, где нажать, приложение будет делать то, что он предназначен, чтобы сделать

S3 с SDK 4.3 - приложение отлично работает с объявлением в нижнем

Galaxy Trend с SDK 4.0.4 - приложением отлично работает с объявлением в нижних

Если в моем манифесте изменения я использует, чтобы быть SDK пустым (не определяя никаких sdks), приложение отлично работает на S4. Это, очевидно, не идеально, но интересно, что он работает.

Сначала я подумал, что это связано с объявлением, накладывающимся на содержимое пользовательского интерфейса, но после удаления объявления поведение будет таким же. Я вижу только черный экран, но могу управлять приложением, нажав в тех местах, где должны быть кнопки.

Я рад предоставить больше информации или образцов кода, но на данном этапе я понятия не имею, что потребуется для устранения этой проблемы. Кто-нибудь сталкивался с этим раньше? спасибо заранее

EDIT: Вот код, я использую:

 requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     mGLSurfaceView = new CCGLSurfaceView(this); 
     setContentView(mGLSurfaceView); 

     Context context = CCDirector.sharedDirector().getActivity().getBaseContext();   
     g.sv = new SurfaceView(context); 
     g.sv.setLayoutParams(new LayoutParams(1, 1)); 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(1, 1); 
     addContentView(g.sv, params); 
+1

Код выглядит Java, поэтому я предполагаю, что это связано с cocos2d-андроида двигателя, поэтому я удалил cocos2d-х и cocos2d-iphone теги (различные двигатели, разные языки). – LearnCocos2D

+0

спасибо. Моя вина, поскольку вы можете видеть, что я немного новичок в этом. Версия cocos2d - cocos2d-андроид-1 на основе iphone 0.99.4 –

ответ

2

Недавно у меня была аналогичная проблема. Когда я запускаю приложение на avd с KitKat (SDK 4.4.2), появляется черный экран. Посмотрите на эти ссылки. Один случай Stackoverflow с кодом, который исправляет эту проблему, а другой - проблема с облигациями, открытая для этой проблемы. Надеюсь, это поможет.

Black Screen on Android Launch Unless using Landscape Orientation

https://github.com/ZhouWeikuan/cocos2d/issues/65

+1

большое спасибо. Вот и все. Я сделал изменение в CCDirector.java в org.cocos2d.nodes от: public static final int kCCDirectorProjectionDefault = kCCDirectorProjection3D; до public static final int kCCDirectorProjectionDefault = kCCDirectorProjection2D; –