Android系统应用程序的Android 65k multidex问题

时间:2016-08-20 00:45:30

标签: android android-multidex

开发一个适用于多个库和aar文件的系统应用程序,从而得到应用程序得到Multidex 65k问题,这是许多在Android工作室工作的开发人员报告的问题。 在我的情况下,我正在研究android系统构建环境,不知道如何启用multidex选项?

扩展了应用程序并添加了MultiDex.install(this);这对编译结果没有影响

编写输出的麻烦:方法引用太多:156862;最大值是65536。 您可以尝试使用--multi-dex选项。

无法找到任何有关此类问题的系统构建工作的参考。

关于此的任何指示都会有所帮助

谢谢

3 个答案:

答案 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配置需要您对应用开发项目进行一些修改。特别是您需要执行以下步骤:

  • 更改Gradle构建配置以启用multidex
  • 修改清单以引用MultiDexApplication类

修改模块级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

Setting Up Google Play Services了解详情。