开发一个适用于多个库和aar文件的系统应用程序,从而得到应用程序得到Multidex 65k问题,这是许多在Android工作室工作的开发人员报告的问题。 在我的情况下,我正在研究android系统构建环境,不知道如何启用multidex选项?
扩展了应用程序并添加了MultiDex.install(this);这对编译结果没有影响
编写输出的麻烦:方法引用太多:156862;最大值是65536。 您可以尝试使用--multi-dex选项。
无法找到任何有关此类问题的系统构建工作的参考。
关于此的任何指示都会有所帮助
谢谢
答案 0 :(得分:2)
在您的gradle中更新
defaultConfig {
..............
multiDexEnabled true
}
dexOptions应该添加..
dexOptions {
//incremental = true;
preDexLibraries = false
javaMaxHeapSize "4g"
}
依赖性添加
compile 'com.android.support:multidex:1.0.1'
同样在您的AndroidManifest.xml中添加以下行:android:name
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name="android.support.multidex.MultiDexApplication"
>
答案 1 :(得分:0)
想法是否apk方法是&gt; 64K,然后我们打破它有多个dex文件。
在 build.gradle
中android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
// Add this dependency
compile 'com.android.support:multidex:1.0.0'
}
希望这有帮助。
参考:Android Dev
答案 2 :(得分:0)
您可以访问Configure Apps with Over 64K Methods了解详情。
这里有一些摘录:
设置应用开发项目以使用multidex配置需要您对应用开发项目进行一些修改。特别是您需要执行以下步骤:
修改模块级build.gradle文件配置以包含支持库并启用multidex输出,如以下代码段所示:
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
在清单中,将Multidex支持库中的MultiDexApplication类添加到应用程序元素中。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
如果您已添加Google Play服务库,请使用:
compile 'com.google.android.gms:play-services:9.4.0'
尽量只使用你真正需要的东西。像这样:
com.google.android.gms:play-services-base:9.4.0
com.google.android.gms:play-services-ads:9.4.0 // only need ads
com.google.android.gms:play-services-gcm:9.4.0 // only need gcm