Я портировал свое приложение на Android, используя NDK и cocos2dx.Все работает отлично, за исключением того, что мне нужно показать фильм на Youtube (трейлер к моей игре).Мне все равно, если это делается из встроенного веб-просмотра - или из автономного браузера.Я работал с этим весь день и не смог :(. Я новичок в android dev, и поэтому мог бы сделать это глупо - поправьте меня.
Решение 1) Я пыталсядобавить веб-представление (с URL-адресом YouTube) в мой OpenGl View, но это никогда не показывается.При замене веб-просмотра на TextView Текст отображается корректно поверх моего представления OpenGl.Моя реализация показана ниже:
String packageName = getApplication().getPackageName();
super.setPackageName(packageName);
RelativeLayout base = new RelativeLayout(this);
FrameLayout frame = new FrameLayout(this);
mGLView = new Cocos2dxGLSurfaceView(this);
WebView testView = new WebView(this);
testView.loadUrl("http://www.google.dk/"); // THIS NEVER SHOW !!
LinearLayout testLayout = new LinearLayout(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
testLayout.addView(testView ,lp);
frame.addView(mGLView);
frame.addView(testLayout);
base.addView(frame);
setContentView(base);
Решение 2) Затем я попытался запустить автономный браузер, выполнив следующее:
Uri uri = Uri.parse("http://www.youtube.com/watch?v=1FJHYqE0RDg");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
Это прекрасно работает, если это было сделано до моего OpenGlСцена запущена и работает.Если я запускаю его, когда запущена сцена Opengl, моя игра вылетает со следующей информацией:
08-10 17: 48: 38.972: WARN / dalvikvm (11576): threadid = 11: поток, выходящий без исключения(группа = 0x40015560) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: GLThread 10 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): java.lang.NullPointerException 08-1017: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.app.Activity.startActivityForResult (Activity.java:2827) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.app.Activity.startActivity (Activity.java:2933) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): at org.cocos2dx.lib.PigsInTreesJavaCppComunication.pitTestJNI (PigsInTreesJavaCppComunication.java:54: 38.99 17: 09.99: 10: ОШИБКА / AndroidRuntime (11576): по адресу org.cocos2dx.lib.Cocos2dxActivity.pitTestJNI (Cocos2dxActivity.java:174) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): по адресу org.cocos2dos.doc.nativeTouchesEnd (Native Method) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в org.cocos2dx.lib.Cocos2dxRenderer.handleActionUp (Cocos2dxRenderer.java:49) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в илиcocos2dx.lib.Cocos2dxGLSurfaceView $ 9.run (Cocos2dxGLSurfaceView.java:288) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в android.opengl.GLSurfaceView $ GLThread.guardedRun (GLSurface6) 08.06.10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView.java:1118) 08-10 17: 48: 39.019: WARN / ActivityManager (109): Принудительное завершение операцииdk.tactile.pigsInTrees / .pigsInTreesB 08-10 17: 48: 39.027: INFO / TAG: onPause
Я действительно не знаю, что здесь делать :( Пожалуйста, помогите мне.Привет