Skip to content
谁与争辉hui edited this page Jul 28, 2017 · 6 revisions

常见奔溃:

1,ListView header footer 增加错误,数据为0时,不使用header和footer。

java.lang.IndexOutOfBoundsException
Invalid index 0, size is 0
java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
java.util.ArrayList.get(ArrayList.java:308)
android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)
android.widget.ListView.dispatchDraw(ListView.java:3307)
android.view.View.draw(View.java:15234)
android.widget.AbsListView.draw(AbsListView.java:4110)

2,资源未找到

android.content.res.Resources$NotFoundException: File res/drawable-xhdpi-v4/bg_pressed_blue.9.png from drawable resource ID #0x7f02001a
at android.content.res.Resources.loadDrawable(Resources.java:1714)
at android.content.res.Resources.getDrawable(Resources.java:581)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
at android.content.res.Resources.loadDrawable(Resources.java:1694)
at android.content.res.Resources.getDrawable(Resources.java:581)
at android.view.View.setBackgroundResource(View.java:7533)
at com.androidtool.CleanReportActivity.addMoreNewsBtn(CleanReportActivity.java:274)
这个crash有点不可理解的是.9图出现在drawable-xhdpi-v4 文件夹下,甚是不可思议,查阅相关资料,解释drawable-v4 for API 4-14, 低版本手机出现资源被归类到-v4包下;至于归到-v4包下缺没有找到,原因大概是图片太小 1像素,在density特别低的手机上解析宽高 为0了。
android.content.res.Resources$NotFoundException: String resource ID #0x7f060019
                                                at android.content.res.Resources.getText(Resources.java:522)
                                                at android.widget.TextView.setText(TextView.java:3903)
                                                at com.androidtool.news.a.a(ChannelAdapter.java:312)
                                                at android.support.v7.widget.dh.a(RecyclerView.java:5471)
                                                at android.support.v7.widget.dh.b(RecyclerView.java:5504)
                                                at android.support.v7.widget.dx.a(RecyclerView.java:4741)
                                                at android.support.v7.widget.dx.c(RecyclerView.java:4617)
                                                at android.support.v7.widget.ch.a(LinearLayoutManager.java:1994)
查看crash定位到位置,发现是strings.xml 声明的字符串未找到,奔溃发生在一款480*800 的手机上面,其他大屏手机OK,最终查到结果发现strings.xml 被错放在values-hdpi-1208x720 文件夹下,造成小屏幕手机资源未找到crash。

3,在下载链接时候出现如下问题,while trying to execute request: javax.net.ssl.SSLPeerUnverifiedException: Cannot verify hostname: rd.e.sogou.com

4,安装apk 出现“Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED”错误,

AndroidManifest.xml file 中 多个activity 设置android.intent.action.MAIN 或者是activity 少设置 android.intent.action.MAIN。

5,java.lang.NoClassDefFoundError

 该异常表示找不到类定义,当JVM或者ClassLoader实例尝试装载该类的定义(这通常是一个方法调用或者new表达式创建一个实例过程的一部分)而这个类定义并没有找时所抛出的错误。

[解决方案]:NoClassDefFoundError异常一般出现在编译环境和运行环境不一致的情况下,就是说有可能在编译过后更改了Classpath或者jar包所以导致在运行的过程中JVM或者ClassLoader无法找到这个类的定义。

1.分dex包编程,如果依赖的dex包删除了指定的类,执行初始化方法时将会报错;
2.使用第三方SDK或插件化编程时,动态加载或实例化类失败将会报错;
3.系统资源紧张时,当大量class需要加载到内存的时候,处于竞争关系,部分calss竞争失败,导致加载不成功;
4.装载并初始化一个类时失败(比如静态块抛 java.lang.ExceptionInInitializerError 异常),然后再次引用此类也会提示NoClassDefFoundErr 错误;
5.手机系统版本或硬件设备不匹配(如ble设备只支持18以上SDK),程序引用的class在低版本中不存在,导致NoClassDefFoundErr 错误。
6.so文件找不到,设备平台armeabi-v7a,但是我的so库是放在armeabi中的,解决方法新建一个armeabi-v7a包,并且把armeabi的文件拷贝过来.

开发过程中注意sdk 版本,个别API 在低版本上会发生崩溃,虽然好多软件低版本不支持,但是这些会提高你的崩溃率。

Clone this wiki locally