Unity3D Android Jar Plugin 연동시 FATAL EXCEPTION GLThread
우려했던 일이 현실이 되었네요. 처음 유니티3D 안드로이드 Jar 플러그인 만들어 연동하는 것을 정리했을 때 cocos2d-x jni로 GLThread쪽 이슈 처리에 대한 것을 언급했었습니다. 당시 포스팅은 간단한거라 이슈가 없었고, 지금은 페이스북 연동중인데 일부러 runOnUiThread를 빼고 해줬더니 역시나 문제가 발생하네요.
Exception Ljava/lang/RuntimeException; thrown while initializing Landroid/os/AsyncTask;
threadid=10: thread exiting with uncaught exception (group=0x40a461f8)
FATAL EXCEPTION: GLThread 4143
java.lang.Error: FATAL EXCEPTION [GLThread 4143]
Unity version : 4.1.2f1
Device model : Acer A500
Caused by: java.lang.ExceptionInInitializerError
at com.Test.unityandroidfacebookjar.MainActivity.PostToMeWall_U(MainActivity.java:152)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
at android.os.AsyncTask.<clinit>(AsyncTask.java:190)
5 more
로그입니다. cocos2d-x jni 처리때 보던 로그와 많이 비슷하죠. 유니티3D에서 안드로이드로 보낸 메세지 처리는 제가 cocos2d-x 때 처리한것 처럼 Handler와 Message를 가지고 처리해도 되고
Exception Ljava/lang/RuntimeException; thrown while initializing Landroid/os/AsyncTask;
threadid=10: thread exiting with uncaught exception (group=0x40a461f8)
FATAL EXCEPTION: GLThread 4143
java.lang.Error: FATAL EXCEPTION [GLThread 4143]
Unity version : 4.1.2f1
Device model : Acer A500
Caused by: java.lang.ExceptionInInitializerError
at com.Test.unityandroidfacebookjar.MainActivity.PostToMeWall_U(MainActivity.java:152)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
at android.os.AsyncTask.<clinit>(AsyncTask.java:190)
5 more
로그입니다. cocos2d-x jni 처리때 보던 로그와 많이 비슷하죠. 유니티3D에서 안드로이드로 보낸 메세지 처리는 제가 cocos2d-x 때 처리한것 처럼 Handler와 Message를 가지고 처리해도 되고
runOnUiThread(new Runnable(){ public void run() { ..... } });아니면 위와 같이 runOnUiThread(new Ruunable() { 을 사용해도 됩니다. 이미 페이스북 이전에 연동했던 다른 SDK는 이걸로 연동해서 처리했었습니다.
댓글
댓글 쓰기