一直想好好的记录一下,原来的ADT项目 在遇到65535这个问题之后 转到as这个过程中产生的问题,可是时间一长
再加上这个过程确实有很多的问题,现在也不能记住原来的详细问题了。下面就简单的记录一下as打包 解决65535的过程。
很简单,了解之后。
1,基于前两篇博客现在一个ADT项目已经是一个as项目了,可是打包之后出现了一个问题
大致的意思 你的methods 是*****超过65535 You may try using --multi-dex option.
这个下面还有一个重要的错误信息
Error:Execution failed for task ':WA_P**:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:
Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/C ontents/Home/bin/java''
finished with non-zero exit value 2
开始我一直以为下面这个也是一个错误,其实并不是,这个就是由method引起的,
解决方式 在buile.gradle中的android中配置 如下信息
defaultConfig{
multiDexEnabled true
}
2, 在自己的application继承MultiDexApplication(这个有两种方式,可以查一下,网上很多
我这里主要要说明的时 其实解决method就着两步,别无其他),这个类是在android-support-multidex.jar这个里面,
平时我们要用这个类就得引用这个jar。gradle 不用他可以加载远程的仓库 你只需在相应额module中的buile.gradle
中添加如下配置
大家可能看到了 exclude :‘android-support-multidex.jar’ 这句话,这个干什么的呢? 如果你直接用的矩形中的配置没有将jar包引入到
libs下,这句不能添加。但是这有一个问题,这个项目在eclipse中就会红叉(强迫症是忍不了的)。
怎么解决呢?
那么就需要引入jar,同时添加这句话,作用呢? 因为gradle 编译打包时候不允许有重复的引用,否则就会包
Error:Execution failed for task ':WA_P**:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:
Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/C ontents/Home/bin/java''
finished with non-zero exit value 2
这个错误,想办法让他加载一遍,但是矩形中配置是必须有得,那们只能让引入的jar 在编译打包中排除。
写这个是为了做个记录,写的不好。恐怕过段时间自己都看不懂,写的时候心情也不太好,也许错过了,就再也不会见了。。。