您的位置:首页 > 产品设计 > UI/UE

Android 5.0以下,使用android studio 出现错误com.android.build.api.transform.TransformException:

2017-09-16 16:12 603 查看

Android 5.0以下,使用android studio 出现错误com.android.build.api.transform.TransformException:

使用as去跑5.0以下的手机,居然跑出了错误com.android.build.api.transform.TransformException: …….class com.android.dx.command.Main with arguments {–dex –num-thre}……..jar,……jar

在build.gradle添加

dexOptions {
incremental true
javaMaxHeapSize "4g"
}
defaultConfig {
multiDexEnabled true
}


控制最大的内存。。

之后app能跑起来,但是,闪退。。。

错误:android Error:java.lang.OutOfMemoryError: GC overhead limit exceeded

java.lang.NoClassDefFoundError:

基本看出内存溢出闪退。

解决方案

dependencies {

// 添加依赖

compile 'com.android.support:multidex:1.0.0'

}


使用自定义的Application继承MultiDexApplication这个类,或者重写Application的方法attachBaseContext(),并调用MultiDex.install();

原因是: 这个错误是Android应用的方法总数限制造成的。Android平台的Java虚拟机Dalvik在执行DEX格式的Java应用程序时,使用原生类型short来索引DEX文件中的方法。这意味着单个DEX文件可被引用的方法总数被限制为65536。通常APK包含一个classes.dex文件,因此Android应用的方法总数不能超过这个数量,这包括Android框架、类库和你自己开发的代码。而Android 5.0和更高版本使用名为ART的运行时,它原生支持从APK文件加载多个DEX文件。在应用安装时,它会执行预编译,扫描classes(..N).dex文件然后将其编译成单个.oat文件用于执行. 通熟的讲,就是分包。

参考:http://www.jianshu.com/p/8b4f711da0bb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android studio android
相关文章推荐