Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I enable multidex for react native?

I'm pretty sure its a built in feature but I cant find anything when searching or in the docs. Is there a flag for building with multidex enabled?

On another note: Any way to see which libraries are messing with your method count? Hitting the 64k limit came as quite a surprise.

like image 767
Kloar Avatar asked May 23 '17 16:05

Kloar


People also ask

How do I enable multidex?

To enable Multidex, edit the build. gradle file at the module level: android { compileSdk 31 defaultConfig { ... minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" multiDexEnabled true // Add this to enable Multidex testInstrumentationRunner "androidx.

What is multidex application?

In Android, the compilers convert your source code into DEX files. This DEX file contains the compiled code used to run the app. But there is a limitation with the DEX file. The DEX file limits the total number of methods that can be referenced within a single DEX file to 64K i.e. 65,536 methods.

How do I enable multidex in flutter project?

How do I enable multidex in flutter project? The multidex support is enabled automatically. If your app supports Android SDK versions below 21, and it exceeds the 64K method limit, simply pass the –multidex flag to flutter build appbundle or flutter build apk and your app will support multidex.


2 Answers

For RN 0.59+ and using Gradle 3.4.1, none of the answers here had the complete solution. I did the following and it worked:

  1. In android/app/build.gradle, update the dependency block:

    dependencies {
        // ... your other dependencies
    
        // Multidex
        implementation 'com.android.support:multidex:1.0.3'
    }
    

    And also update the defaultConfig in the android block:

    defaultConfig {
        // ... your `applicationId`, etc.
        multiDexEnabled true
    }
    
  2. In MainApplication.java, replace
    import android.app.Application;
    
    at the top with
    import android.support.multidex.MultiDexApplication;
    
    OR if you're on RN 0.60+ or have manually upgraded to AndroidX then use this instead:
    import androidx.multidex.MultiDexApplication;
    
  3. Still in MainApplication.java, replace
    public class MainApplication extends Application implements ReactApplication {
    
    with
    public class MainApplication extends MultiDexApplication implements ReactApplication {
    
like image 90
Brandon Avatar answered Oct 18 '22 05:10

Brandon


Found the answer somewhere else. It's no different than enabling it for any regular Android project.

android {
    ....
    defaultConfig {
        ...
        multiDexEnabled true
    }

As for method count, this site does the trick: http://inloop.github.io/apk-method-count/

like image 17
Kloar Avatar answered Oct 18 '22 06:10

Kloar