读书人

Touch Email icon on homescreen, for

发布时间: 2012-09-23 10:28:11 作者: rapoo

Touch Email icon on homescreen, fore close.
1. 操作步骤:
--在Email帐号设置中, 选择ringtone; 按home 键; N个没什么印象的操作; 在homescreen中按Email icon时, 抛出如何异常(之后没有再出现):

I/ActivityManager( 127): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.email/.activity.Welcome bnds=[83,240][157,319] } from pid 228
E/Cursor ( 5443): Invalid statement in fillWindow()
W/dalvikvm( 890): threadid=1: thread exiting with uncaught exception (group=0x40018560)
E/AndroidRuntime( 890): FATAL EXCEPTION: main
E/AndroidRuntime( 890): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
E/AndroidRuntime( 890): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
E/AndroidRuntime( 890): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
E/AndroidRuntime( 890): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
E/AndroidRuntime( 890): at android.database.CursorWrapper.getString(CursorWrapper.java:135)
E/AndroidRuntime( 890): at com.android.internal.database.SortCursor.getString(SortCursor.java:205)
E/AndroidRuntime( 890): at android.widget.SimpleCursorAdapter.bindView(SimpleCursorAdapter.java:130)
E/AndroidRuntime( 890): at android.widget.CursorAdapter.getView(CursorAdapter.java:186)
E/AndroidRuntime( 890): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
E/AndroidRuntime( 890): at android.widget.AbsListView.obtainView(AbsListView.java:1409)
E/AndroidRuntime( 890): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
E/AndroidRuntime( 890): at android.widget.ListView.onMeasure(ListView.java:1127)
E/AndroidRuntime( 890): at android.view.View.measure(View.java:8313)
E/AndroidRuntime( 890): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
E/AndroidRuntime( 890): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
E/AndroidRuntime( 890): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
E/AndroidRuntime( 890): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
E/AndroidRuntime( 890): at android.view.View.measure(View.java:8313)
E/AndroidRuntime( 890): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
E/AndroidRuntime( 890): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
E/AndroidRuntime( 890): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
E/AndroidRuntime( 890): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
E/AndroidRuntime( 890): at com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:60)
E/AndroidRuntime( 890): at android.view.View.measure(View.java:8313)
E/AndroidRuntime( 890): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
E/AndroidRuntime( 890): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
E/AndroidRuntime( 890): at android.view.View.measure(View.java:8313)
E/AndroidRuntime( 890): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
E/AndroidRuntime( 890): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
E/AndroidRuntime( 890): at android.view.View.measure(View.java:8313)
E/AndroidRuntime( 890): at android.view.ViewRoot.performTraversals(ViewRoot.java:841)
E/AndroidRuntime( 890): at android.view.ViewRoot.handleMessage(ViewRoot.java:1862)
E/AndroidRuntime( 890): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 890): at android.os.Looper.loop(Looper.java:130)


E/AndroidRuntime( 890): at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime( 890): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 890): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 890): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
E/AndroidRuntime( 890): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
E/AndroidRuntime( 890): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 127): Force finishing activity android/com.android.internal.app.RingtonePickerActivity
W/ActivityManager( 127): Activity pause timeout for HistoryRecord{409a1238 android/com.android.internal.app.RingtonePickerActivity}
D/NotificationService( 127): enqueueNotificationInternal bCMASMessage: false
D/NotificationService( 127): enqueueNotificationInternal sound, vib

2.查看了下RingtonePickerActivity, cursor是使用managedQuery获取的, 也没有发现cursor被冻结或关闭; 哪位知道根源, 或者知道如何提高重现概率、以便分析?

[解决办法]
android.database.CursorWrapper.getString
你给的index是不是不对?你看一下你要取的字段的index,可以打开db看一下。
[解决办法]
看了一下code,是你的count为零导致的问题,最好发点code来看看,你说的之前之后不为零,啥意思?
没有代码很难分析,或者是看一下你的查询语句是否有问题
[解决办法]
Cursor类中游标位置最初为-1;

moveToFirst()方法将游标位置设置为0,即指向第一条数据;

moveToPosition(int i)方法将游标位置设置为i,i的范围为-1到Cursor的行数。

读书人网 >Android

热点推荐