首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用新的Android Multidex支持库启用多索引

如何使用新的Android Multidex支持库启用多索引
EN

Stack Overflow用户
提问于 2014-10-28 21:34:07
回答 10查看 240.1K关注 0票数 152

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

通过Android棒棒糖,谷歌引入了一个multidex支持库,使得multidex变得很容易。

要使用此库并构建支持multidex的应用程序,需要执行哪些步骤?

EN

回答 10

Stack Overflow用户

发布于 2014-10-29 17:49:47

要启动多重dexing,需要执行以下步骤:

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

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

代码语言:javascript
复制
public class MyApplication extends MultiDexApplication

或者像这样覆盖attachBaseContext:

代码语言:javascript
复制
protected void attachBaseContext(Context base) {
 super.attachBaseContext(base);
 MultiDex.install(this);
}

我使用覆盖方法,因为它不会扰乱应用程序类的类层次结构。

现在你的应用程序已经准备好使用multi了。下一步是说服gradle构建一个多解的apk。构建工具团队正在努力让这一切变得更容易,但目前你需要在你的应用程序build.gradle的安卓部分添加以下内容

代码语言:javascript
复制
   dexOptions {
      preDexLibraries = false
   }

和以下内容添加到应用程序build.gradle的常规部分

代码语言:javascript
复制
afterEvaluate {
   tasks.matching {
      it.name.startsWith('dex')
   }.each { dx ->
      if (dx.additionalParameters == null) {
         dx.additionalParameters = ['--multi-dex']
      } else {
         dx.additionalParameters += '--multi-dex'
      }
   }
}

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

票数 45
EN

Stack Overflow用户

发布于 2015-07-30 20:42:16

简单地说,为了启用multidex,您需要...

代码语言:javascript
复制
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"

defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...

    // Enabling multidex support.
    multiDexEnabled true
}
...
}

dependencies {
implementation 'com.android.support:multidex:1.0.0'
}

此外,您还必须更改清单文件。在清单中,将multidex支持库中的MultiDexApplication类添加到应用程序元素中,如下所示

代码语言:javascript
复制
<?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>
票数 18
EN

Stack Overflow用户

发布于 2019-07-08 20:38:47

build.gradle

代码语言:javascript
复制
multiDexEnabled true
implementation 'androidx.multidex:multidex:2.0.1'

AndroidManifest.xml

代码语言:javascript
复制
<application
    android:name="androidx.multidex.MultiDexApplication"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26609734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档