清单xml中的MultiDexApplication和全局类



我的问题是我有一个全局类,它有关于我的应用程序的信息,我在其他活动中显示,

我的AndroidManifest.xml是这样的。。。

<application
    android:name=".Global"      <-------- global class
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/nobar">
 .
 .
</application>

但我有错误java.lang.OutOfMemoryError: GC overhead limit exceeded65k limit in dex,我需要将其更改为…

<application
    android:name="android.support.multidex.MultiDexApplication" <--- changed
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/nobar">
 .
 .
</application>

这是我的build.gradle

apply plugin: 'com.android.application'
android {
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId "com.xx.xx"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 25
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            signingConfig signingConfigs.xx
            debuggable false
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.google.android.gms:play-services:9.4.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
}

但我需要全球课堂分享有关活动的信息。。。

或者还有其他方法可以做这件事??

在build.gradle中,尝试更改如下内容,使用multiDexEnabled true

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'
}

https://developer.android.com/studio/build/multidex.html

如何使用新的Android Multidex支持库

启用多出口

我的项目有一个全局类,我做了这个全局类的例子

带有android清单的全局类示例

我的全局类的解决方案是这个例子。。

Android全局变量

像这样更新全局类以支持MultiDex。

public class Global extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
    //rest of your code here
}

我刚刚遇到了同样的问题。

为了解决这个问题,我修复了全局类,如下所示。

public class Global extends Application  --> before
public class Global extends android.support.multidex.MultiDexApplication --> after

然后,AndroidManifest.xml应该像以前一样在name属性中填充Global类。

<application
    android:name=".Global"

相关内容

  • 没有找到相关文章

最新更新