64k不是android studio 2.2.2的限制吗?

时间:2016-11-22 13:15:17

标签: android multidex

最近,我将android studio更新为版本 2.2.2 ,并且gradle版本为 2.14.1

今天下午,我发现64K limit不是问题。我使用Android Studio生成一个apk并想体验APK Analyzer。当我用APK Analyzer打开apk时,我发现它有2个dex文件,classes.dex和classes2.dex。

我意识到我的项目超过了65536个方法引用。但是,我没有做任何事情来避免64K限制。 Android Studio只是帮助我们动态地完成它。在classes.dex文件中,我找到了multidex.class。这让我感到困惑,我做了一个测试:make' multiDexEnabled'假,并再次生成apk,仍然有apk中的2个dex文件。它表示属性" multiDexEnabled'不再起作用了。

我提供了2小时的信息,但没有得到多少。任何人都可以给我这个变化的官方文件吗?任何帮助都将不胜感激!

如果我错了,请提供您的测试结果和配置环境,再次感谢。

更新: 伙计们,这是我的错。在依赖库中有一个classes2.dex文件,工作室包在apk中。事实上,我的项目没有超过64k的限制。为了研究64k限制,我添加额外的librar超过64k限制。根据官方文档,我在build.gradle文件中设置了属性'multiDexEnabled',并添加了multidex支持库。

    android {
        defaultConfig {
            ...
            minSdkVersion 15 
            targetSdkVersion 25
            multiDexEnabled true
        }
        ...
    }

    dependencies {
      compile 'com.android.support:multidex:1.0.1'
      compile 'com.android.support:support-v4:24.2.1'
    }

但是,multidex与support-v4冲突,其中包含与multidex相关的类。所以你应该删除这一行:

      compile 'com.android.support:multidex:1.0.1'. 

然后,它奏效了。我生成了一个带有.dex文件的apk:classes.dex和classes2.dex。现在,我遇到了另一个问题,工作室如何将dex文件分成2个文件?我将在另一个问题中讨论这个主题,谢谢大家,伙计们。

0 个答案:

没有答案