본문 바로가기

IT개발일지/Android

[Android]Must be called from main thread of fragment host |에러

java.lang.IllegalStateException: Must be called from main thread of process

안드로이드 에러 이번내용은 위와 같다.

FATAL EXCEPTION: Thread-11 java.lang.IllegalStateException: Must be called from main thread of process at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1392) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431) at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:160) at android.support.v4.view.ViewPager.populate(ViewPager.java:804) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405) at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:397) at com.lyansoft.music_visualizer.MusicVisualizerActivity.changePageFromActivity(MusicVisualizerActivity.java:144) at com.lyansoft.music_visualizer.ShuffleThread.run(ShuffleThread.java:38)

위내용을 살펴보니 메인스레드에서 어쩌구저쩌구 이러는것 같다.

※해결방법

act.runOnUiThread(new Runnable() {
@Override
public void run() {
        //에러나는 부분 입력!!!
}
});

 

안드로이드 안의 UI가 변경되고 있는 도중 어떠한 상황이 발생하여 생긴 오류로 파악된다.

위와 같이 사용을 하면

Must be called from main thread of fragment host

에러를 해결 할수있다!