方法参考太多:107085;扩展 MultiDexApplication 后最大值为 65536
Too many method references: 107085; max is 65536 after extending MultiDexApplication
[2015-07-16 17:32:14 - Loneous] Dx
trouble writing output: Too many method references: 107085; max is 65536.
You may try using --multi-dex option.
我有这个错误,我已经用 MultiDexApplication 扩展了我的应用程序 class,但我仍然收到这个错误。
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
还在我的应用程序中添加了 attachBaseContext 方法。
请指导我如何避免此编译错误并运行我的应用成功。
编辑您的 manifest.xml
并添加对 MultidexApplication 的引用 class
<application android:name="your.package.MyApplicationWhichExtendsMultidex">
转到您的 grandle 构建文件并添加
multiDexEnabled true
以及对 multidex 支持的依赖
compile 'com.android.support:multidex:1.0.0'
我不知道 Eclipse 如何处理 Android 项目,但如果它不使用 Gradle 那么你需要在期间传递 --multi-dex
选项(如错误所述)构建。如果您仍在使用 Ant,请转到 Gradle 或 Maven。
I've found for you the official documentation about how to fix this problem
Multidex 应该是你最后的选择,首先尝试混淆你的代码,这样签名的 APK 会更苗条(它会删除方法)。之后尝试查看您正在使用哪些第三方库以及它们有多少种方法 - 您可以通过此在线工具轻松完成:
只需将您的 APK 放在那里。
http://inloop.github.io/apk-method-count/
得到结果后,尝试找出您当前使用的某些库是否可以替换为方法较少的类似库。
另外:
在您的 gradle 文件中设置 "minifyEnabled=true"。
如果您使用支持库,您可以使用 gradle 'exclude module' 减少其中的方法数量(大约 20K (!!))并只选择您实际使用的支持库的模块。
无论如何,107k 方法对于任何应用程序来说似乎有点太多了。
[2015-07-16 17:32:14 - Loneous] Dx
trouble writing output: Too many method references: 107085; max is 65536.
You may try using --multi-dex option.
我有这个错误,我已经用 MultiDexApplication 扩展了我的应用程序 class,但我仍然收到这个错误。
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
还在我的应用程序中添加了 attachBaseContext 方法。
请指导我如何避免此编译错误并运行我的应用成功。
编辑您的
manifest.xml
并添加对 MultidexApplication 的引用 class<application android:name="your.package.MyApplicationWhichExtendsMultidex">
转到您的 grandle 构建文件并添加
multiDexEnabled true
以及对 multidex 支持的依赖
compile 'com.android.support:multidex:1.0.0'
我不知道 Eclipse 如何处理 Android 项目,但如果它不使用 Gradle 那么你需要在期间传递 --multi-dex
选项(如错误所述)构建。如果您仍在使用 Ant,请转到 Gradle 或 Maven。
I've found for you the official documentation about how to fix this problem
Multidex 应该是你最后的选择,首先尝试混淆你的代码,这样签名的 APK 会更苗条(它会删除方法)。之后尝试查看您正在使用哪些第三方库以及它们有多少种方法 - 您可以通过此在线工具轻松完成:
只需将您的 APK 放在那里。
http://inloop.github.io/apk-method-count/
得到结果后,尝试找出您当前使用的某些库是否可以替换为方法较少的类似库。
另外:
在您的 gradle 文件中设置 "minifyEnabled=true"。
如果您使用支持库,您可以使用 gradle 'exclude module' 减少其中的方法数量(大约 20K (!!))并只选择您实际使用的支持库的模块。
无论如何,107k 方法对于任何应用程序来说似乎有点太多了。