完美解决 java.lang.NoClassDefFoundError R$layout R$di
2016-07-18 00:00
447 查看
此坑有点大,害我同事弄了一周没有搞定
开始的时候是报另外一个错误,也是NoClassDefFoundError异常,但这个是因为包冲突的问题,删除掉一些包就好了。但是这个问题没有这么简单。
首先描述一下我们的场景吧:
我们做了一个
百度,Google搜了以大堆资料,都没有解决,最后在
看了这个才知道,这是Dex超出方法数的限制问题,Dex达到极限时,会创建多个Dex文件,android Lollipop 没有处理,需要在应用中处理 。
如果需要自己实现
或者
参考:https://developer.android.com/tools/building/multidex.html#mdex-gradle
这里记录一下没有解决我的问题的方案,也许你有用:
http://stackoverflow.com/questions/32110859/fatal-exception-java-lang-noclassdeffounderror-android-support-v7-appcompat-r?noredirect=1&lq=1
http://stackoverflow.com/questions/27614538/crash-java-lang-noclassdeffounderror-android-support-v7-appcompat-rlayout
http://stackoverflow.com/questions/9870995/android-java-lang-noclassdeffounderror
开始的时候是报另外一个错误,也是NoClassDefFoundError异常,但这个是因为包冲突的问题,删除掉一些包就好了。但是这个问题没有这么简单。
首先描述一下我们的场景吧:
我们做了一个
优谈TOPAPP,主要的逻辑代码是在一个单独的
android studio module实现的,这个主要是为了可以导入到公司其他APP里面,就是把
优谈TOP当成sdk,嵌入到公司其他APP里,我们使用
优谈TOP单独运行的时候没有一点问题,导入到另外要一个APP的时候,问题就出现了。
百度,Google搜了以大堆资料,都没有解决,最后在
stackoverflow找到了一种方案。还真可以
stackoverflow连接 http://stackoverflow.com/questions/32110859/fatal-exception-java-lang-noclassdeffounderror-android-support-v7-appcompat-r
看了这个才知道,这是Dex超出方法数的限制问题,Dex达到极限时,会创建多个Dex文件,android Lollipop 没有处理,需要在应用中处理 。
第一步:
在build.gradle中增加(非
root
build.gradle)
dependencies { compile 'com.android.support:multidex:1.0.0' } defaultConfig { multiDexEnabled true }
第二步:
在AndroidManifest.xml增加<application ... android:name="android.support.multidex.MultiDexApplication"> ... </application>
如果需要自己实现
Application,需要重写
attachBaseContext方法
import android.support.multidex.MultiDexApplication; import android.support.multidex.MultiDex; public class MyApplication extends MultiDexApplication { // ...... @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
或者
import android.support.multidex.MultiDex; public class MyApplication extends Application { // ...... @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
参考:https://developer.android.com/tools/building/multidex.html#mdex-gradle
这里记录一下没有解决我的问题的方案,也许你有用:
http://stackoverflow.com/questions/32110859/fatal-exception-java-lang-noclassdeffounderror-android-support-v7-appcompat-r?noredirect=1&lq=1
http://stackoverflow.com/questions/27614538/crash-java-lang-noclassdeffounderror-android-support-v7-appcompat-rlayout
http://stackoverflow.com/questions/9870995/android-java-lang-noclassdeffounderror
相关文章推荐
- mybatis, spring , logback 配置官方文档地址
- java IO 学习
- java匿名内部类
- java多线程目录
- eclipse svn 同步和提交忽略制定某些文件类型和文件夹
- Spring MVC通过CROS协议解决跨域问题
- Spring propertyConfigurer类
- SpringMVC把从Jsp页面传递过来的日期字符串转换成Java日期类型方法
- 【Java】发送激活邮件
- Java technical documents
- Java security
- 根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第3版)
- Struts2中action的方法被执行两次
- JAVA:WordCount
- Spring_Jdbc连接管理
- 关于spring的事务操作方法
- 遍历list的几种方式
- 为什么切面要切业务层?
- java内存模型
- spring为什么实现接口?