使用摇篮到分离DEX文件分割外部库来解决Android的Dalvik的64K方式限制 [英] Using Gradle to split external libraries in separated dex files to solve Android Dalvik 64k methods limit
问题描述
有一个适当/易
办法用摇篮,解决了64K的方法限制?
Is there a proper/easy
way to solve the 64k methods limit using Gradle?
我的意思是一些自定义的摇篮任务使用,而不是一个单一的 classes.dex
。
I mean some custom Gradle task to use pre-dexed jars to create separated dex files, instead of a single classes.dex
.
感谢您
伊万
目前,我挣扎与大湄公河次区域:它带来了20K的方法来使用Analytics(分析)。我用Proguard的剥离下来什么也不需要,但仍... 72K方法和计数...
Currently, I'm struggling with GMS: it brings in 20k methods to use Analytics. I use Proguard to strip down what's not need, but still... 72k methods and counting...
我可以在两种文件分割 classes.dex
使用 DX
参数 - 多DEX 。我做到了这一点手工编辑
I can split classes.dex
in two file using dx
parameter --multi-dex. I achieved it manually editing
sdk/build-tools/android-4.4W/dx
和这样的编辑最后一行:
and editing last line like this:
exec java $javaOpts -jar "$jarpath" --multi-dex "$@"
我的APK文件现在包含 __ classes.dex__和__classes2.dex __
。
我试图动态加载第二个文件有几个方法:
I'm trying to dynamically load the second file with a few methods:
- Dexdex link
- Dexter link
- Secondary dex gradle link
不幸的是仍然没有运气。我真的希望一些谷歌/ Facebook的/方大师可以提供一个妥善的解决办法。
Unfortunately still no luck. I really hope some Google/Facebook/Square guru can provide a proper solution.
推荐答案
编辑:最近发布的摇篮Android插件0.14.0 通过新的 multiDexEnabled真正
指令(需要运行工具,可以直接多DEX支持21.1.0,支持存储库版本8和Android工作室0.9)。
The recently released Gradle Android plugin 0.14.0 has direct multi-dex support via the new multiDexEnabled true
directive (requires build-tools 21.1.0, support repository revision 8, and Android Studio 0.9).
自从摇篮Android插件0.9.0你真正的可以的的通 - 多DEX
到 DX
加入这个给你的应用程序的 build.gradle
文件:
Ever since Gradle Android plugin 0.9.0 you actually can pass the --multi-dex
to dx
by adding this to you app's build.gradle
file:
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
// Add more additional parameters like this:
dx.additionalParameters += '--main-dex-list=class-list.txt'
dx.additionalParameters += '--minimal-main-dex'
}
}
到目前为止为的创建的他多DEX文件。要真正的使用的多个DEX文件,看看 https://github.com/ casidiablo / multidex (这是谷歌即将推出的MultiDex支持库的一个分支)。
So far for the creating he multiple dex files. To actually use the multiple dex files, take a look at https://github.com/casidiablo/multidex (which is a fork of Google's upcoming MultiDex support library).
这篇关于使用摇篮到分离DEX文件分割外部库来解决Android的Dalvik的64K方式限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!