如何使用新的Android Multidex支持库启用多重分化

我想使用新的Multidex支持库来打破我的一个应用程序的方法限制。

使用Android Lollipop Google推出了multidex支持库,可以轻松实现multidex。

需要采用哪些步骤来使用这个库并使用multidex支持构建我的应用程序?


修改你的build.gradle

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0"

         defaultConfig {
             minSdkVersion 14 //lower than 14 doesn't support multidex
             targetSdkVersion 22

             // Enabling multidex support.
             multiDexEnabled true
         }
}

dependencies {
    compile 'com.android.support:multidex:1.0.3'
}

如果你正在运行单元测试,你会希望将它包含在你的Application类中:

public class YouApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

}

欲了解更多信息,这是一个很好的指导。


开始多重分类需要以下步骤:

将android-support-multidex.jar添加到您的项目中。 该jar可以在您的Android SDK文件夹/ sdk / extras / android / support / multidex / library / libs中找到

现在,您可以让应用程序应用程序类扩展MultiDexApplication

public class MyApplication extends MultiDexApplication

或者像下面这样重写attachBaseContext:

protected void attachBaseContext(Context base) {
 super.attachBaseContext(base);
 MultiDex.install(this);
}

我使用了重写方法,因为这不会影响应用程序类的类层次结构。

现在您的应用程序已准备好使用多个dex。 下一步是说服gradle构建一个多重dexed apk。 构建工具团队正在努力使这更容易,但目前你需要将以下内容添加到你的应用程序的android部分build.gradle

   dexOptions {
      preDexLibraries = false
   }

以下是您的应用程序build.gradle的一般部分

afterEvaluate {
   tasks.matching {
      it.name.startsWith('dex')
   }.each { dx ->
      if (dx.additionalParameters == null) {
         dx.additionalParameters = ['--multi-dex']
      } else {
         dx.additionalParameters += '--multi-dex'
      }
   }
}

更多信息可以在Alex Lipovs博客上找到。


SIMPLY,为了启用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'
}

你也必须改变你的清单文件。 在您的清单中,将multiDexApplication类从multidex支持库添加到像这样的应用程序元素

<?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>
链接地址: http://www.djcxy.com/p/55027.html

上一篇: How to enable multidexing with the new Android Multidex support library

下一篇: executing jar file created from maven build