ClassCastException log 分析
4. ClassCastException 解决方案
使用try-catch
抓住异常,或者从代码上解决根本问题。
使用 try-catch抓住 ClassCastException异常
5. Android 手机 Settings ClassCastException 解决方案
举例是为了更好的解决开发中的异常。比如在开发中,使用 monkey
测试Settings
模块时,报出的 ClassCastException
,Settings
代码比较多,一时也无法看完,此时,try-catch
也是一种不错的选择。
比如monkey
测试某平台代码时,报出以下异常
- log 信息如下:
FATAL EXCEPTION: ApplicationsState.Loader 01-05 03:36:56.101 6304 6941 E AndroidRuntime: Process: com.android.settings, PID: 6304 01-05 03:36:56.101 6304 6941 E AndroidRuntime: java.lang.ClassCastException: com.android.settings.datausage.AppStateDataUsageBridge D a t a U s a g e S t a t e c a n n o t b e c a s t t o c o m . a n d r o i d . s e t t i n g s . n o t i f i c a t i o n . N o t i f i c a t i o n B a c k e n d DataUsageState cannot be cast to com.android.settings.notification.NotificationBackend DataUsageStatecannotbecasttocom.android.settings.notification.NotificationBackendAppRow 01-05 03:36:56.101 6304 6941 E AndroidRuntime: at com.android.settings.applications.AppStateNotificationBridge$3.filterApp(AppStateNotificationBridge.java:110)
6. Settings ClassCastException Log分析
Settings ClassCastException Log1
Settings ClassCastException Log2
7. Setting crash ClassCastException 解决方案:
try-catch 异常报错的地方
try-catch 异常报错的地方
try-catch 异常报错的地方
三、IndexOutOfBoundsException 下标越界异常
==================================
List 在开发中经常会被用的,那么错误的使用下标,将会导致IndexOutOfBoundsException
越界异常。以下代码就会引起IndexOutOfBoundsException
异常
1. IndexOutOfBoundsException 代码举例
IndexOutOfBoundsException 异常举例
2. IndexOutOfBoundsException Log举例
- Log 信息如下:
12-27 17:41:24.231 16891 16891 E AndroidRuntime: Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 12-27 17:41:24.231 16891 16891 E AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:411) 12-27 17:41:24.231 16891 16891 E AndroidRuntime: at com.programandroid.Exception.IndexOutOfBoundsException.isAppOnRecent(IndexOutOfBoundsException.java:40) 12-27 17:41:24.231 16891 16891 E AndroidRuntime: at com.programandroid.Exception.ExceptionActivity.IndexOutOfBoundsException(ExceptionActivity.java:80)
3. Log 分析如下:
IndexOutOfBoundsException Log分析
4. IndexOutOfBoundsException 解决方案
在使用时判断对象内容是否为0.
使用判断List 的size是否为0
四、ActivityNotFoundException
===========================
ActivityNotFoundException
常见于Eclipse
开发Android
中,Android studio 已经帮忙自动生成Activity,以及布局文件。
主要原因是未在AndroidMainfest.xml
文件中注册,如未注册,会引起app crash
,crash log
如下:
ActivityNotFoundException: Unable to find explicit activity class
1. ActivityNotFoundException 代码举例
比如以下代码会引起此异常
Activity未在Androidmainfest.xml 中注册会引起ActivityNotFoundException
2. ActivityNotFoundException Log 举例
- Log信息如下:
12-27 17:46:05.994 17893 17893 E AndroidRuntime: Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.programandroid/com.programandroid.Test.TestActivity}; have you declared this activity in your AndroidManifest.xml? 12-27 17:46:05.994 17893 17893 E AndroidRuntime: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1810)
3. Log 分析如下:
ActivityNotFoundException Log分析
4. ActivityNotFoundException 解决方案
在AndroidMainfest.xml
中注册即可
四大组件一定,一定要在AndroidMainfest.xml 中注册
五、IllegalStateException
=======================
IllegalStateException
非法状态异常,是因为软件中代码状态非法导致的。
以下代码会引起IllegalStateException
。当Button
控件声明android:onClick="IllegalStateException"
却未在Java
代码中使用时,点击Button
,就会出现此类异常。
1. IllegalStateException 代码举例
IllegalStateException 代码举例
2. IllegalStateException Log 举例
- log信息如下:
12-27 16:07:41.158 1715 1715 E AndroidRuntime: FATAL EXCEPTION: main 12-27 16:07:41.158 1715 1715 E AndroidRuntime: Process: com.programandroid, PID: 1715 12-27 16:07:41.158 1715 1715 E AndroidRuntime: java.lang.IllegalStateException: Could not find method IllegalStateException(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.widget.Button with id ‘btn_on_click’ 12-27 16:07:41.158 1715 1715 E AndroidRuntime: at android.view.View D e c l a r e d O n C l i c k L i s t e n e r . r e s o l v e M e t