突发性 java.lang.NoClassDefFoundError
来源:互联网 发布:佛山网络推广方法 编辑:程序博客网 时间:2024/05/19 05:06
主要问题
java.lang.NoClassDefFoundError
问题描述
在使用不同版本手机进行测试时,往往出现手机类型兼容性问题与手机系统版本兼容性问题,此问题主要为后者,描述如下:
1. 开发中使用5.0+android系统(coolpad);2. 编译运行无误;3. 使用5.0-android系统(HUAWEI-4.4)调试时出现初始化出错;4. logcat 输出错误为java.lang.NoClassDefFoundError5. 出问题的类文件保证存在切能通过编译
问题现象
由Error导致应用崩溃或闪退
问题分析
在开发中,所做项目的量级与应用兼容android版本是一个非常严重的问题,而在此问题上,大致分析为两种:
- 应用的使用版本最低要求是 API 16 通过查阅 Android 5.0以下出现 java.lang.NoClassDefFoundError: 得出可能是版本问题;
- 而在应用中,由于需求不断变更导致文件越来越多,有可能引发Dex超出方法数问题, 参照 Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚 ;
解决方案
1.添加依赖
compile 'com.android.support:multidex:1.0.0'
2.配置build.gradle
android { ... defaultConfig { ... multiDexEnabled true ... }}
3.自定义Application继承MultiDexApplication或者重写Application的方法attachBaseContext(),并调用MultiDex.install()
例如:
//继承MultiDexApplication使用public class App extends MultiDexApplication { ...}
4.clean 重新编译,如果不放心可删除build文件夹
5.问题解决
此问题属于个人开发中所遇问题,并不代表此类问题都能通过这种方式解决,若有更好解决方式或相似问题,欢迎各位留言探讨,不胜感激!
0 0
- 突发性 java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError翻译
- java.lang.NoClassDefFoundError bshEvalError
- java.lang.NoClassDefFoundError:
- java.lang.NoClassDefFoundError记录
- java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError
- maven java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError 解决办法
- java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError相关
- java.lang.NoClassDefFoundError jre6
- 【转】java.lang.NoClassDefFoundError
- java.lang.NoClassDefFoundError orgapachecommonsioFileUtils
- java.lang.NoClassDefFoundError orgapachecommonslangStringUtils
- Android建立远程动态库,提交到Jcenter
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】揭开Linux Proc文件系统的神秘面纱
- 为什么匿名内部类参数必须为final类型
- Java反射机制详解
- Python习题:Python 判断是不是等差数列,要求算法时间复杂度为O(NlogN)
- 突发性 java.lang.NoClassDefFoundError
- webview加载html标签有图片时,让图片自适应屏幕
- 9 Python迭代_for
- Socket编程
- iOS 实现webview不滚动,显示所有内容
- Windows下Maven的安装配置
- LDPC 码
- Java版,如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q
- "Can't connect to Mysql server on .....(10038)"的解决办法