64k方法数(MultiDex)
来源:互联网 发布:音画制作软件 编辑:程序博客网 时间:2024/06/03 20:23
由于Android平台的持续增长,Android应用程序的大小也随之增大。当你的应用程序引用库达到一定的规模,就会出错(64K):
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
第一步:
配置Module下的Gradle文件
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
apply plugin: 'com.android.application' android { // productFlavors是为了避免每次运行都把DEX重新加载一遍而设置的两套运行配置 productFlavors { dev { minSdkVersion 21 } prod { minSdkVersion 14 } } compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "com.example.itgungnir.testmultidex" minSdkVersion 11 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" //设置MultiDex可用 multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } // 保证其他的lib没有被preDex dexOptions { preDexLibraries = false } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' // MultiDex的依赖 compile 'com.android.support:multidex:1.0.0' }
第二步:
配置Project下的Gradle文件
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } // 保证dex_files文件中指定的文件都加载到Main Dex中 afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = [] } dx.additionalParameters += '--multi-dex' dx.additionalParameters += "--main-dex-list=$projectDir/dex_files".toString() } }
第三步:
需要在项目的Application文件中注入MultiDex
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); // 将MultiDex注入到项目中 MultiDex.install(this); } }
第四步:
Manifest文件中注册Application:
android:name=".MyApplication"
第五步:
开发阶段:
发布阶段:
把build variants 里面的build variant 选择成prodRelease
阅读全文
0 0
- 64k方法数(MultiDex)
- 方法数超过64K解决方案(MultiDex)
- Android应用使用Multidex突破64K方法数限制
- Android应用使用Multidex突破64K方法数限制
- Android应用使用Multidex突破64K方法数限制
- Android应用使用Multidex突破64K方法数限制
- Android应用使用Multidex突破64K方法数限制
- android MultiDex配置突破64K方法数限制
- Android MultiDex 解决 64K 限制,方法数超过65535解决方法
- 解决Android应用方法数不能超过65K问题-使用multidex来解决方法数越界
- MultiDex 官方教你解决64K方法
- android MultiDex multidex原理下超出方法数的限制问题(三)
- 使用 multidex 解决应用方法数不能超过65k的问题
- Android Studio Multidex 解决方法数超65k限制
- Android Studio Multidex 解决方法数超65k限制
- Android使用MultiDex处理64K限制
- 使用MultiDex 解决64K限制
- MultiDex解决64K限制的问题
- javascript之DOM技术(二)
- 使用xtrabackup远程备份到及重建数据库
- iOS学习笔记--tableView中如何获取cell上textfiled的值
- Selenium基础教程----基于Java(一)
- Spring Security(10)——退出登录logout
- 64k方法数(MultiDex)
- 高考来了_大数据能做些什么?
- 了解WEBSOCKET是什么
- https 中的SSL/TLS 加密
- eth0变成eth1的问题解决方案
- LNK2019/2001: 无法解析的外部符号的解决方法
- 横竖屏温馨提示
- 在Spring MVC框架下利用Servlet3.0 API实现文件上传
- win7 双屏 任务栏扩展工具 Dual Monitor Taskbar