안녕하세요, 처음으로 마켓에 올린 어플에서 다음과 같은 에러가 보고 되었는데요,  메인 쓰레드가 아닌 다른 쓰레드에서 메인쓰레드의 뷰를 건드린다는 내용으로 이해를 했습니다. 로그는 다음과 같습니다.

 

android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRoot.checkThread(ViewRoot.java:2802)
at android.view.ViewRoot.requestLayout(ViewRoot.java:594)
at android.view.View.requestLayout(View.java:8288)
at android.view.View.requestLayout(View.java:8288)
at android.view.View.requestLayout(View.java:8288)
at android.view.View.requestLayout(View.java:8288)
at android.view.View.requestLayout(View.java:8288)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:254)
at android.view.View.requestLayout(View.java:8288)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:254)
at android.view.View.setBackgroundDrawable(View.java:7645)
at com.cauly.android.ad.AdView$2.run(AdView.java:806)

 

로그 하단에 보면 카울리 쪽 소스의 AdView.java에서 setBackgroundDrawable을 하다가 익셉션이 발생한 게 아닌가 싶은데요, AdView.java를 뒤져보니 의심가는 부분이 나오긴 했습니다.

 

//의심가는 Adview.java내의 코드 부분

AdView.adLayout.setBackgroundDrawable(background);

 

위 코드가 AdView.java 내의 광고를 다시 로드하는 메소드 내부의 run()객체 내부에 있구요, 에러의 원인이 되는 곳이라 의심하고 있습니다. 재현이라도 되면 더 분석해보겠건만, 어찌하면 좋을까요 ㅎㅎ