티스토리 뷰

반응형

안드로이드 개발중에 에러는 나는데 왜 죽는지 모르는 경우가 발생했다.


구글링을 많이 했는데도 잘 안나와서 2틀 정도 고생했다..


나의 경우에는 웹뷰에서 사용하는 이미지 싸이즈가 큰것도 있었고, 


웹뷰이다보니 String을 너무 겸쳐서 사용하는 경우도 있었다


몇가지 문제를 보고 고치기는 했지만 확실하게 맞는지는 좀 두고봐야할것 같다


일단 어떤문제가 있었고 어떻게 해결했는지 보겠다.


1. ScrollView


나의 경우에는

    <ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:transitionGroup="true"
android:layout_marginTop="52dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<WebView
android:id="@+id/rewardWeb"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</LinearLayout>
</ScrollView>

<LinearLayout
android:id="@+id/rel_Dlg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="51dp"
android:background="#40000000"
android:orientation="vertical"
android:visibility="gone">


<ScrollView
android:layout_width="match_parent"
android:layout_height="250dp"
android:scrollbars="vertical"
android:transitionGroup="true">

<LinearLayout
android:id="@+id/rel_DlgItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

</LinearLayout>
</ScrollView>

<RelativeLayout
android:id="@+id/relbtm"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#40000000">

</RelativeLayout>


</LinearLayout>
</RelativeLayout>

저 코드에서 android:transitionGroup 만 추가 했다


두번쨰있는 ScrollView는  hide 되었다가 나타는 건데 그게 문제가 좀 되었던거 같기도하다.


참고

https://stackoverflow.com/questions/26626344/scene-transition-with-hero-elements-throws-layer-exceeds-max-dimensions-support




2. String.format();


이게 문제가 되었는데 HTML = String,format("%s %s",HTML, newString) 이런식으로 겹쳐서 사용했더니 상태가 별로 안좋아진거 같다.


그냥 HTML += String.format("%s",newString) 이렇게 바꿨다 


3. runOnUiThread


처음 Activity >> onCreate 에서 동적으로 만들어서 Layout에 넣는게 있었는데 그게 좀 걸리긴했지만 잘돌아가서 나뒀는데


나중에 저 문제가 터졌다 그래서


new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
// 해당 작업을 처리함


}
})
;
}}).start();


저렇게 코드를 변경했다 저렇게 해서 처리 했더니 ok~!


혹시 글을 보고 이게 아닌것 같다거나 질문있으시면 댓글 주세요....




반응형
댓글