【问题标题】:Android Dex Optimization and Method CountAndroid Dex 优化和方法计数
【发布时间】:2017-04-14 22:07:57
【问题描述】:

我有一个 android 项目,其中添加了许多库项目作为模块。

并且项目中的方法数超过了android的限制(65k)。我使用 multidex 作为解决方案。它没有解决我的问题。

这是我的 build.gradle 文件。

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
aaptOptions {
    cruncherEnabled = false
}
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    multiDexEnabled = true
}}

首先,我尝试将 MultiDex.install() 添加到 ApplicationContext 文件的 onCreate 方法中。它没有用。 ApplicationContextNormal.java 文件在这里;

public class ApplicationContextNormal extends ApplicationContext {

@Override
public void onCreate() {
    MultiDex.install(this);
    super.onCreate();
}

}

然后,我尝试将 MultiDex.install() 添加到 attachBaseContext 方法中。

public class ApplicationContextNormal extends ApplicationContext {
...
   @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(base);
}
    ...

这是我的 AndroidManifest.xml;

<application
    android:name="com.alyt.lytmobilenormal.connection.ApplicationContextNormal" 
...

是不是我应该用Dex优化的方式来解决这个问题?我在主项目中进行了更改,而不是在我的模块项目中。还是我错过了什么?

有什么想法吗?

【问题讨论】:

  • 你应该在这里发布你的依赖。您应该尝试将您的应用保持在单个 dex 之下。

标签: android gradle android-multidex


【解决方案1】:

来自Documentation

更改此:添加multiDexEnabled true 失去'='

   defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    multiDexEnabled true
}

你的班级也应该扩展 Application 班级

public class ApplicationContextNormal extends Application {}

【讨论】:

  • 如果是multidex,应该扩展MultiDexApplication并在依赖中添加com.android.support:multidex:1.0.1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
相关资源
最近更新 更多