며칠 동안이 문제로 고생했습니다. 우리의 응용 프로그램은 여러 장치에서 작동하지만 특정 레이아웃이로드 될 때 충돌이 발생합니다 (ANR 충돌). 하나의 예를 아래 :레이아웃이 특정 장치에서 ANR로 인해 충돌 함
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/view_background"
android:orientation="vertical"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/back_searchbar"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="2dp" >
<EditText
android:id="@+id/filterEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/rounded_edittext"
android:drawablePadding="8dp"
android:hint="@string/search"
android:paddingLeft="30dp"
android:paddingRight="10dp"
android:singleLine="true" />
<Button
android:id="@+id/searchBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_margin="10dp"
android:background="@drawable/icon_magnify" />
</FrameLayout>
<ListView
android:id="@+id/listView"
style="@style/mmListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/view_background"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"
android:dividerHeight="8dp"
android:footerDividersEnabled="true"
android:headerDividersEnabled="true"
android:listSelector="@android:color/transparent" >
</ListView>
</LinearLayout>
예를 들어 안드로이드 2.3.3을 실행하는 갤럭시 S의 응용 프로그램 충돌 (ANR 충돌). 우리는 같은 문제가있는 다른 모델을 알고 있습니다. 우리가 흥미로운 점은 레이아웃에서 FrameLayout 파트를 제거하면 올바르게로드된다는 것입니다. 또한, 동일한 응용 프로그램이 아무런 문제없이 다른 장치에서 실행됩니다.
BugSense를 사용하지만 이러한 충돌로 인해 보고서가 생성되지 않습니다. 여기
는 로그 캣의 마지막 라인이다 :
07-16 14:34:16.113: D/dalvikvm(17786): GC_EXTERNAL_ALLOC freed 415K, 43% free 5210K/9095K, external 5930K/6095K, paused 39ms
07-16 14:34:20.312: I/dalvikvm(17786): threadid=4: reacting to signal 3
07-16 14:34:21.316: W/dalvikvm(17786): threadid=4: spin on suspend #1 threadid=37 (pcf=0)
07-16 14:34:22.066: W/dalvikvm(17786): threadid=4: spin on suspend #2 threadid=37 (pcf=0)
07-16 14:34:22.066: I/dalvikvm(17786): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 14:34:22.066: I/dalvikvm(17786): | group="system" sCount=0 dsCount=0 obj=0x4050fbd8 self=0x114e90
07-16 14:34:22.066: I/dalvikvm(17786): | sysTid=17789 nice=0 sched=0/0 cgrp=default handle=1134160
07-16 14:34:22.066: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:22.066: I/dalvikvm(17786): "(null)" prio=0 tid=37 RUNNABLE
07-16 14:34:22.066: I/dalvikvm(17786): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x408192d8 self=0x3c9708
07-16 14:34:22.066: I/dalvikvm(17786): | sysTid=17933 nice=0 sched=0/0 cgrp=default handle=3954088
07-16 14:34:22.066: I/dalvikvm(17786): at java.lang.Thread.<init>(Thread.java:~386)
07-16 14:34:22.066: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:22.816: W/dalvikvm(17786): threadid=4: spin on suspend #3 threadid=37 (pcf=0)
07-16 14:34:22.816: I/dalvikvm(17786): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 14:34:22.816: I/dalvikvm(17786): | group="system" sCount=0 dsCount=0 obj=0x4050fbd8 self=0x114e90
07-16 14:34:22.816: I/dalvikvm(17786): | sysTid=17789 nice=0 sched=0/0 cgrp=default handle=1134160
07-16 14:34:22.816: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:22.816: I/dalvikvm(17786): "(null)" prio=0 tid=37 RUNNABLE
07-16 14:34:22.816: I/dalvikvm(17786): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x408192d8 self=0x3c9708
07-16 14:34:22.816: I/dalvikvm(17786): | sysTid=17933 nice=0 sched=0/0 cgrp=default handle=3954088
07-16 14:34:23.019: I/dalvikvm(17786): at java.lang.Thread.<init>(Thread.java:~386)
07-16 14:34:23.019: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:23.769: W/dalvikvm(17786): threadid=4: spin on suspend #4 threadid=37 (pcf=0)
07-16 14:34:23.769: I/dalvikvm(17786): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 14:34:23.769: I/dalvikvm(17786): | group="system" sCount=0 dsCount=0 obj=0x4050fbd8 self=0x114e90
07-16 14:34:23.769: I/dalvikvm(17786): | sysTid=17789 nice=0 sched=0/0 cgrp=default handle=1134160
07-16 14:34:23.769: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:23.769: I/dalvikvm(17786): "(null)" prio=0 tid=37 RUNNABLE
07-16 14:34:23.769: I/dalvikvm(17786): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x408192d8 self=0x3c9708
07-16 14:34:23.769: I/dalvikvm(17786): | sysTid=17933 nice=0 sched=0/0 cgrp=default handle=3954088
07-16 14:34:23.851: I/dalvikvm(17786): at java.lang.Thread.<init>(Thread.java:~386)
07-16 14:34:23.851: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:24.601: W/dalvikvm(17786): threadid=4: spin on suspend #5 threadid=37 (pcf=0)
07-16 14:34:24.601: I/dalvikvm(17786): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 14:34:24.601: I/dalvikvm(17786): | group="system" sCount=0 dsCount=0 obj=0x4050fbd8 self=0x114e90
07-16 14:34:24.601: I/dalvikvm(17786): | sysTid=17789 nice=0 sched=0/0 cgrp=default handle=1134160
07-16 14:34:24.601: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:24.601: I/dalvikvm(17786): "(null)" prio=0 tid=37 RUNNABLE
07-16 14:34:24.601: I/dalvikvm(17786): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x408192d8 self=0x3c9708
07-16 14:34:24.601: I/dalvikvm(17786): | sysTid=17933 nice=0 sched=0/0 cgrp=default handle=3954088
07-16 14:34:24.601: I/dalvikvm(17786): at java.lang.Thread.<init>(Thread.java:~386)
07-16 14:34:24.601: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:25.351: W/dalvikvm(17786): threadid=4: spin on suspend #6 threadid=37 (pcf=0)
07-16 14:34:25.351: I/dalvikvm(17786): "Signal Catcher" daemon prio=5 tid=4 RUNNABLE
07-16 14:34:25.351: I/dalvikvm(17786): | group="system" sCount=0 dsCount=0 obj=0x4050fbd8 self=0x114e90
07-16 14:34:25.351: I/dalvikvm(17786): | sysTid=17789 nice=0 sched=0/0 cgrp=default handle=1134160
07-16 14:34:25.355: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
07-16 14:34:25.355: I/dalvikvm(17786): "(null)" prio=0 tid=37 RUNNABLE
07-16 14:34:25.355: I/dalvikvm(17786): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x408192d8 self=0x3c9708
07-16 14:34:25.355: I/dalvikvm(17786): | sysTid=17933 nice=0 sched=0/0 cgrp=default handle=3954088
07-16 14:34:25.359: I/dalvikvm(17786): at java.lang.Thread.<init>(Thread.java:~386)
07-16 14:34:25.359: I/dalvikvm(17786): at dalvik.system.NativeStart.run(Native Method)
무슨 일이 일어나고 있는지에 대해 어떤 생각? 아니면 우리는 어떻게 그러한 문제를 피할 수 있습니까?
오류가있는 로그를 게시하십시오. –
우리 친구가 말하는 logcat은 무엇입니까 – Slartibartfast
@Slartibartfast 나는별로 생각하지 않는다고 생각합니다 ... –