2013-06-25 5 views
1

게임을 쓰고 admob (버전 6.4.1)을 추가하고 있습니다. 광고를 클릭하면 두 가지 문제가 발생하며 해결 방법이나 디버깅 방법을 모르겠습니다.admob의 광고를 클릭하면 게임이 종료됩니다.

다음 코드를 사용하여 표면보기에 admob을 추가하고 있습니다. 기본적으로, 그것은 여기에 다른 게시물을 참조했다.

06-25 15:08:24.214: I/System.out(25294): Pause all Music 
06-25 15:08:24.218: I/System.out(25294): onPause 
06-25 15:08:25.007: I/Ads(25294): onPresentScreen() 
06-25 15:08:25.007: I/System.out(25294): onPresentScreen 
06-25 15:08:25.148: I/Ads(25294): onLeaveApplication() 
06-25 15:08:25.148: I/System.out(25294): onLeaveApplication 
06-25 15:08:25.273: I/System.out(25294): SurfaceDestoryed 
06-25 15:08:25.402: I/System.out(25294): onStop (Game exit temperory and AD is running) 
06-25 15:08:28.261: D/webviewglue(25294): OnTrimMemory with EGL Context 0x0 
06-25 15:08:28.308: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:28.308: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:28.308: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:28.308: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:28.308: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:32.652: D/webviewglue(25294): OnTrimMemory with EGL Context 0x0 
06-25 15:08:32.656: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:32.656: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:32.656: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:32.656: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:32.656: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:35.789: I/Ads(25294): onDismissScreen() 
06-25 15:08:35.800: I/System.out(25294): onDismissScreen 
06-25 15:08:35.960: I/System.out(25294): onRestart 
06-25 15:08:35.960: I/System.out(25294): onResume 
06-25 15:08:36.035: I/System.out(25294): SurfaceCreated 
06-25 15:08:36.050: I/System.out(25294): surfaceChanged 
06-25 15:08:39.722: I/System.out(25294): Pause all Music (when press "Back" key, it will go to background at here) 
06-25 15:08:39.722: I/System.out(25294): onPause 
06-25 15:08:40.164: I/System.out(25294): SurfaceDestoryed 
06-25 15:08:41.285: W/IInputConnectionWrapper(25294): showStatusIcon on inactive InputConnection 
06-25 15:08:42.621: D/webviewglue(25294): OnTrimMemory with EGL Context 0x0 
06-25 15:08:42.621: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:42.621: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:42.625: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:42.625: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:42.625: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 
06-25 15:08:42.636: I/System.out(25294): onStop 
06-25 15:08:42.699: E/webview(25294): Error: WebView.destroy() called while still attached! 
06-25 15:08:42.699: D/webviewglue(25294): nativeDestroy view: 0x52039c80 
06-25 15:08:42.703: I/System.out(25294): onDestory 

문제 :

1) 광고가 클릭하면 구글 플레이 나 탐색기가 실행됩니다 다음

adView = new AdView(this, AdSize.SMART_BANNER, "My_ID"); 
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
     RelativeLayout.LayoutParams.WRAP_CONTENT, 
     RelativeLayout.LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
adView.setLayoutParams(lp); 
RelativeLayout layout = new RelativeLayout(this); 
layout.addView(new MySurfaceViewX(this)); 
layout.addView(adView); 
adView.loadAd(new AdRequest()); 
setContentView(layout); 

로그 캣 정보입니다. Logcat에 다음 오류가 나타납니다.

06-25 15:08:41.285: W/IInputConnectionWrapper(25294): showStatusIcon on inactive InputConnection 
06-25 15:08:42.621: D/webviewglue(25294): OnTrimMemory with EGL Context 0x0 
06-25 15:08:42.621: E/libEGL(25294): call to OpenGL ES API with no current context (logged once per thread) 

2) "뒤로"키를 눌러 게임으로 돌아갈 때 "뒤로"키를 다시 누르면 게임이 배경으로 이동합니다. 그것은 finish()를 사용하거나 "Home"키를 누르기를 좋아합니다. 게임이 중단되지 않고 아이콘을 다시 누른 후 다시 전화 할 수 있습니다.

광고를 클릭하지 않으면 모든 것이 정상적으로 실행됩니다.

에뮬레이터에서 실행하면 위의 오류가 발생하지 않습니다.

제발, 누가 도와 줄 수 있습니까? 그것은 나를 미치게 만든다!

답변

1

아마도 두 개 이상의 스레드가 EGL Surface와 컨텍스트를 사용할 수 있다고 생각합니다. Android는 특정 컨텍스트에 대한 OpenGL ES에 대한 모든 호출이 단일 스레드에서만 제공되어야한다는 것을 요구합니다. 이 OpenGL을 사용합니다 않습니다,

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1/

+0

하지만 내 게임은 3D 게임되지 않습니다 :이 문서에 대해 자세히 설명? – John

+0

ICS 버전부터 Android는 기본적으로 OpenGL ES 2.0을 사용합니다. AVD 에뮬레이터에서 작동한다고 했으므로 장치의 OpenGL ES 또는 EGL 드라이버에 버그가있을 수 있습니다. 장치 란 무엇입니까? 다른 것을 시도하십시오. – ClayMontgomery

+0

삼성 i9000과 타블렛 Aurora 2를 사용해 보았습니다. – John

관련 문제