support gel dexoptions android gradle multidex android-multidex

android - gel - multidex 1.0 3



Cómo habilitar multidexing con la nueva biblioteca de soporte de Android Multidex (11)

Agregar a AndroidManifest.xml:

android:name="android.support.multidex.MultiDexApplication"

O

MultiDex.install(this);

en el método attachBaseContext de su aplicación personalizada

o su aplicación personalizada extender aplicación MultiDex

agrega multiDexEnabled = true en tu build.gradle

defaultConfig { multiDexEnabled true } dependencies { compile ''com.android.support:multidex:1.0.0'' } }

Quiero utilizar la nueva biblioteca de soporte Multidex para romper el límite de método para una de mis aplicaciones.

Con Android Lollipop Google presentó una biblioteca de soporte multidex que hace que sea fácil de usar multidex.

¿Qué pasos son necesarios para usar esta biblioteca y para construir mi aplicación con soporte multidex?


Agregue esto a su app gradle y no olvide habilitar multidex

dexOptions { incremental true javaMaxHeapSize "2g" }


En su build.gradle agregue esta dependencia:

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

nuevamente en su archivo build.gradle agregue esta línea al bloque predeterminadoConfig :

multiDexEnabled true

En lugar de extender su clase de aplicación desde la aplicación , extiéndala desde MultiDexApplication ; me gusta :

public class AppConfig extends MultiDexApplication {

ahora estás listo para irte! Y en caso de que lo necesite, todo MultiDexApplication hace MultiDexApplication es

public class MultiDexApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }


Los siguientes pasos son necesarios para iniciar multi dexing:

Agregue android-support-multidex.jar a su proyecto. El archivo jar se puede encontrar en su carpeta SDK de Android / sdk / extras / android / support / multidex / library / libs

Ahora puede permitir que su clase de aplicación de aplicaciones extienda MultiDexApplication

public class MyApplication extends MultiDexApplication

o anula attachBaseContext de esta manera:

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

Usé el enfoque de anulación porque eso no molesta con la jerarquía de clases de su clase de aplicación.

Ahora su aplicación está lista para usar multi dex. El siguiente paso es convencer a Gradle para que cree una aplicación de dex a múltiples. El equipo de herramientas de compilación está trabajando para que esto sea más fácil, pero por el momento debes agregar lo siguiente a la parte de Android de tus aplicaciones build.gradle

dexOptions { preDexLibraries = false }

Y lo siguiente a la parte general de tus aplicaciones build.gradle

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

Se puede encontrar más información en el blog Alex Lipovs .


Multi_Dex.java

public class Multi_Dex extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }


Primero debes probar con Proguard (Esto limpia todo el código sin usar)

android {compileSdkVersion 25 buildToolsVersion "25.0.2"

defaultConfig { minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } }

}


SIMPLEMENTE, para habilitar multidex, necesitas ...

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

también debe cambiar su archivo de manifiesto. En su manifiesto, agregue la clase MultiDexApplication de la biblioteca de soporte multidex al elemento de la aplicación como este

<?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>


Si quiere habilitar multi-dex en su proyecto, solo vaya a gradle.builder

y agregue esto en su dependencia

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

entonces tienes que agregar

defaultConfig { ... minSdkVersion 14 targetSdkVersion 21 ... // Enabling multidex support. multiDexEnabled true}

A continuación, abra una clase y extiéndala a la aplicación. Si su aplicación utiliza la extensión de la clase de la aplicación, puede anular el método oncrete () y llamar.

MultiDex.install(this)

para habilitar multidex.

y finalmente agregue en su manifiesto

<?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>


solo agregando esto recortado en build.gradle también funciona bien

android { compileSdkVersion 22 buildToolsVersion "23.0.0" defaultConfig { minSdkVersion 14 //lower than 14 doesn''t support multidex targetSdkVersion 22 **// Enabling multidex support. **multiDexEnabled true**** } }


Paso 1: Cambiar build.grade

defaultConfig { ... // Enabling multidex support. multiDexEnabled true } dependencies { ... compile ''com.android.support:multidex:1.0.0'' }

Paso 2: configuración en la clase de aplicación

public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } }

Paso 3: Cambiar grade.properties

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

¡Funcionará!. Gracias.


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

Si está ejecutando pruebas unitarias, querrá incluir esto en su clase de Application :

public class YouApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }

Para obtener más información, esta es una buena guía.