Multidex support (DEF-2888) (SOLVED)

I’ve finally hit the wall.

Defold can’t build my extension because of the dex limit issue.

Description	Resource	Path	Location	Type
Build server output: javac -source 1.6 -target 1.6 -J-Xms2048m -J-Xmx2048m -classpath /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//ext/share/java/android-support-v4.jar:/var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//ext/share/java/android.jar:/tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/classes -d /tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/classes @/tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/sources.txt
warning: [options] bootstrap class path not set in conjunction with -source 1.6
1 warning

jar cf /tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/R.jar -C /tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/classes .

dx -JXms2048m -JXmx2048m --dex --output /tmp/job5145463158621730021/build/classes.dex /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMIronSourceAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMAdMobAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_vungle_publisher-adaptive-id-4.0.3.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_chartboost-6.6.3.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMInMobiAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_applovin-sdk-7.2.0.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/support-v4-24.0.0.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/appcompat-v7-24.0.0.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMAppLovinAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-ads-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_tapjoyconnectlibrary.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-tasks-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/jnlua.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-ads-lite-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMChartboostAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_vungle_javax.inject-1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMFacebookAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_InMobi-6.2.4.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMVungleAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/jnlua.dummyloader.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/support-v4_impl-24.0.0.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_FacebookAudienceNetwork.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/gson-2.8.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-basement-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMTapjoyAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_TMUnityAdsAdapter.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_InMobi_picasso-2.5.2.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_ironsource-mediationsdk-6.6.4.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_UnityAds-2.1.0.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-base-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-gass-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/extension.tapdaq.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/adapter_libs_vungle_dagger-2.7.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/play-services-clearcut-10.0.1.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/tapdaq.jar /tmp/job5145463158621730021/upload/tapdaq/lib/android/recyclerview-v7-24.0.0.jar /tmp/job5145463158621730021/build/tmp2d314077-d6fd-4412-a2e9-a9ef8feee810rjava/R.jar  /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//ext/share/java/facebooksdk.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//ext/share/java/bolts-android-1.2.0.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//ext/share/java/in-app-purchasing-2.0.61.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/glfw_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/facebook_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/gamesys_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/iap_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/push_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/adtruth_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/sound_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/webview_android.jar /var/extender/sdk/0dde28ca92551934cf34137e33d029cce19b2447/defoldsdk//share/java/iac_android.jar 

trouble writing output: Too many method references: 69766; max is 65536.
You may try using --multi-dex option.
References by package:
     6 android.accessibilityservice
     3 android.accounts
    27 android.animation
   382 android.app
     2 android.appwidget
   227 android.content
    42 android.content.pm
   103 android.content.res
    60 android.database
    24 android.database.sqlite
   211 android.graphics
   103 android.graphics.drawable
     2 android.graphics.drawable.shapes
     3 android.graphics.pdf
    17 android.hardware
     3 android.hardware.display
    11 android.hardware.fingerprint
    28 android.location
   124 android.media
    18 android.media.browse
    91 android.media.session
    72 android.net
     6 android.net.http
     9 android.net.wifi
    29 android.opengl
   294 android.os
     1 android.preference
    27 android.print
     5 android.print.pdf
    18 android.provider
     8 android.renderscript
     2 android.security
    10 android.service.media
     6 android.speech.tts
     7 android.support.customtabs
     2 android.support.graphics.drawable
     1 android.support.v4
    41 android.support.v4.accessibilityservice
    62 android.support.v4.animation
  1745 android.support.v4.app
   282 android.support.v4.content
     1 android.support.v4.content.pm
    56 android.support.v4.content.res
     3 android.support.v4.database
    55 android.support.v4.graphics
   261 android.support.v4.graphics.drawable
    19 android.support.v4.hardware.display
    66 android.support.v4.hardware.fingerprint
    74 android.support.v4.internal.view
   661 android.support.v4.media
   886 android.support.v4.media.session
    96 android.support.v4.net
    76 android.support.v4.os
    97 android.support.v4.print
    96 android.support.v4.provider
    14 android.support.v4.speech.tts
   103 android.support.v4.text
   284 android.support.v4.util
  1895 android.support.v4.view
  1161 android.support.v4.view.accessibility
    29 android.support.v4.view.animation
  1449 android.support.v4.widget
   974 android.support.v7.app
     1 android.support.v7.appcompat
    26 android.support.v7.content.res
    69 android.support.v7.graphics.drawable
     1 android.support.v7.recyclerview
     3 android.support.v7.text
     2 android.support.v7.transition
   140 android.support.v7.util
   157 android.support.v7.view
   688 android.support.v7.view.menu
  3961 android.support.v7.widget
   150 android.support.v7.widget.helper
     5 android.support.v7.widget.util
    44 android.telephony
     3 android.telephony.cdma
     3 android.telephony.gsm
    36 android.text
     1 android.text.format
     3 android.text.method
     3 android.text.style
    17 android.transition
    75 android.util
   728 android.view
   220 android.view.accessibility
    44 android.view.animation
     9 android.view.inputmethod
   176 android.webkit
   761 android.widget
   227 bolts
     3 com.amazon.android
     2 com.amazon.android.framework.context
     2 com.amazon.android.framework.exception
     4 com.amazon.android.framework.prompt
     1 com.amazon.android.framework.task
     1 com.amazon.android.framework.task.command
     3 com.amazon.android.framework.util
     2 com.amazon.android.licensing
    15 com.amazon.device.iap
    31 com.amazon.device.iap.internal
    36 com.amazon.device.iap.internal.a
    67 com.amazon.device.iap.internal.b
    24 com.amazon.device.iap.internal.b.a
    22 com.amazon.device.iap.internal.b.b
    21 com.amazon.device.iap.internal.b.c
    22 com.amazon.device.iap.internal.b.d
    18 com.amazon.device.iap.internal.b.e
    10 com.amazon.device.iap.internal.b.f
    11 com.amazon.device.iap.internal.b.g
     5 com.amazon.device.iap.internal.b.h
    34 com.amazon.device.iap.internal.c
    75 com.amazon.device.iap.internal.model
    36 com.amazon.device.iap.internal.util
   130 com.amazon.device.iap.model
     6 com.amazon.venezia.command
    23 com.android.vending.billing
   124 com.applovin.adview
   159 com.applovin.impl.a
   698 com.applovin.impl.adview
  1331 com.applovin.impl.sdk
    36 com.applovin.mediation
    26 com.applovin.nativeAds
   134 com.applovin.sdk
   442 com.chartboost.sdk
    35 com.chartboost.sdk.InPlay
   183 com.chartboost.sdk.Libraries
    87 com.chartboost.sdk.Model
    68 com.chartboost.sdk.Tracking
  1006 com.chartboost.sdk.impl
    19 com.defold.adtruth
    17 com.defold.iac
   104 com.defold.iap
    59 com.defold.push
    20 com.defold.sound
    62 com.defold.webview
     9 com.defold.window
    88 com.dynamo.android
   139 com.dynamo.android.facebook
   658 com.facebook
   653 com.facebook.ads
     6 com.facebook.ads.a
   250 com.facebook.ads.internal
    33 com.facebook.ads.internal.a
   536 com.facebook.ads.internal.adapters
    40 com.facebook.ads.internal.b
    39 com.facebook.ads.internal.c
     7 com.facebook.ads.internal.d
    77 com.facebook.ads.internal.e
    70 com.facebook.ads.internal.f
   133 com.facebook.ads.internal.g
     5 com.facebook.ads.internal.h
   114 com.facebook.ads.internal.i.a
   125 com.facebook.ads.internal.i.b
    36 com.facebook.ads.internal.i.b.a
    47 com.facebook.ads.internal.j
    58 com.facebook.ads.internal.server
   368 com.facebook.ads.internal.util
   397 com.facebook.ads.internal.view
    96 com.facebook.ads.internal.view.a
    23 com.facebook.ads.internal.view.b
    14 com.facebook.ads.internal.view.c
    36 com.facebook.ads.internal.view.d.a
   328 com.facebook.ads.internal.view.d.b
   173 com.facebook.ads.internal.view.d.c
    82 com.facebook.ads.internal.view.hscroll
   159 com.facebook.appevents
    33 com.facebook.applinks
   694 com.facebook.internal
   283 com.facebook.login
   178 com.facebook.login.widget
    27 com.facebook.messenger
    76 com.facebook.share
   534 com.facebook.share.internal
   384 com.facebook.share.model
   336 com.facebook.share.widget
     2 com.flurry.android
    10 com.flurry.android.ads
    31 com.google.ads
   108 com.google.ads.mediation
     2 com.google.ads.mediation.admob
    41 com.google.ads.mediation.customevent
    18 com.google.android.exoplayer2
     1 com.google.android.exoplayer2.extractor
     1 com.google.android.exoplayer2.source
     2 com.google.android.exoplayer2.trackselection
     2 com.google.android.exoplayer2.upstream
     1 com.google.android.exoplayer2.util
    14 com.google.android.gms
     4 com.google.android.gms.actions
   194 com.google.android.gms.ads
    90 com.google.android.gms.ads.doubleclick
   115 com.google.android.gms.ads.formats
    30 com.google.android.gms.ads.identifier
   546 com.google.android.gms.ads.internal
   321 com.google.android.gms.ads.internal.overlay
    97 com.google.android.gms.ads.internal.purchase
    98 com.google.android.gms.ads.mediation
     2 com.google.android.gms.ads.mediation.admob
    63 com.google.android.gms.ads.mediation.customevent
    16 com.google.android.gms.ads.purchase
    22 com.google.android.gms.ads.reward
    14 com.google.android.gms.ads.reward.mediation
   137 com.google.android.gms.ads.search
    80 com.google.android.gms.auth.api.signin
    20 com.google.android.gms.auth.api.signin.internal
   193 com.google.android.gms.common
   260 com.google.android.gms.common.api
   147 com.google.android.gms.common.data
   105 com.google.android.gms.common.images
   464 com.google.android.gms.common.internal
    86 com.google.android.gms.common.internal.safeparcel
     9 com.google.android.gms.common.server
    57 com.google.android.gms.common.stats
   123 com.google.android.gms.common.util
   214 com.google.android.gms.dynamic
    75 com.google.android.gms.dynamite
     1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.ads.dynamite
     1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags
    27 com.google.android.gms.flags.impl
     3 com.google.android.gms.gcm
    29 com.google.android.gms.iid
  7419 com.google.android.gms.internal
     6 com.google.android.gms.location
    18 com.google.android.gms.location.places
     5 com.google.android.gms.plus
    13 com.google.android.gms.security
   133 com.google.android.gms.tasks
     6 com.google.firebase
   304 com.google.gson
     8 com.google.gson.annotations
   274 com.google.gson.internal
   332 com.google.gson.internal.bind
    10 com.google.gson.internal.bind.util
    20 com.google.gson.reflect
    86 com.google.gson.stream
  2638 com.inmobi.ads
     7 com.inmobi.ads.a
     2 com.inmobi.ads.b
    40 com.inmobi.commons.a
    19 com.inmobi.commons.core.a
    20 com.inmobi.commons.core.b
    31 com.inmobi.commons.core.c
   144 com.inmobi.commons.core.configs
   122 com.inmobi.commons.core.d
    89 com.inmobi.commons.core.network
    73 com.inmobi.commons.core.utilities
    22 com.inmobi.commons.core.utilities.a
    94 com.inmobi.commons.core.utilities.info
    57 com.inmobi.commons.core.utilities.uid
   409 com.inmobi.rendering
    93 com.inmobi.rendering.a
   180 com.inmobi.rendering.mraid
    87 com.inmobi.sdk
   266 com.inmobi.signals
    31 com.inmobi.signals.a
    33 com.inmobi.signals.activityrecognition
    42 com.inmobi.signals.b
   100 com.integralads.avid.library.inmobi
     9 com.integralads.avid.library.inmobi.a
     5 com.integralads.avid.library.inmobi.b
     7 com.integralads.avid.library.inmobi.c
    28 com.integralads.avid.library.inmobi.d
    15 com.integralads.avid.library.inmobi.e
    28 com.integralads.avid.library.inmobi.f
    47 com.integralads.avid.library.inmobi.g
    13 com.integralads.avid.library.inmobi.h
    29 com.integralads.avid.library.inmobi.session
    76 com.integralads.avid.library.inmobi.session.internal
    23 com.integralads.avid.library.inmobi.session.internal.a
    39 com.ironsource.adapters.ris
   155 com.ironsource.adapters.supersonicads
    66 com.ironsource.environment
    39 com.ironsource.eventsmodule
   592 com.ironsource.mediationsdk
    37 com.ironsource.mediationsdk.config
   125 com.ironsource.mediationsdk.events
    38 com.ironsource.mediationsdk.integration
    68 com.ironsource.mediationsdk.logger
   154 com.ironsource.mediationsdk.model
   197 com.ironsource.mediationsdk.sdk
    17 com.ironsource.mediationsdk.server
   169 com.ironsource.mediationsdk.utils
    20 com.ironsource.sdk
    41 com.ironsource.sdk.agent
   457 com.ironsource.sdk.controller
   154 com.ironsource.sdk.data
     4 com.ironsource.sdk.handlers
    38 com.ironsource.sdk.listeners
    32 com.ironsource.sdk.precache
   119 com.ironsource.sdk.utils
   335 com.moat.analytics.mobile.inm
     1 com.moat.analytics.mobile.inm.base.asserts
     1 com.moat.analytics.mobile.inm.base.exception
    12 com.moat.analytics.mobile.inm.base.functional
   366 com.moat.analytics.mobile.tjy
     1 com.moat.analytics.mobile.tjy.base.asserts
     1 com.moat.analytics.mobile.tjy.base.exception
    12 com.moat.analytics.mobile.tjy.base.functional
   592 com.naef.jnlua
     8 com.naef.jnlua.console
    53 com.naef.jnlua.script
    44 com.naef.jnlua.util
    25 com.squareup.okhttp
   536 com.squareup.picasso
   500 com.tapdaq.adapters
    14 com.tapdaq.defold
   334 com.tapdaq.sdk
    76 com.tapdaq.sdk.adnetworks
   157 com.tapdaq.sdk.adnetworks.adcolony
    18 com.tapdaq.sdk.adnetworks.adcolony.model
    29 com.tapdaq.sdk.adnetworks.adcolony.model.response
    11 com.tapdaq.sdk.adnetworks.adcolony.ui
   122 com.tapdaq.sdk.adnetworks.applovin
     5 com.tapdaq.sdk.adnetworks.applovin.model.ad
    11 com.tapdaq.sdk.adnetworks.applovin.model.device
   133 com.tapdaq.sdk.adnetworks.chartboost
    42 com.tapdaq.sdk.adnetworks.chartboost.model
     9 com.tapdaq.sdk.adnetworks.chartboost.model.ad
    12 com.tapdaq.sdk.adnetworks.chartboost.model.config
    43 com.tapdaq.sdk.ads
    12 com.tapdaq.sdk.ads.nativead
    34 com.tapdaq.sdk.analytics
   188 com.tapdaq.sdk.common
    30 com.tapdaq.sdk.debug
   121 com.tapdaq.sdk.helpers
    39 com.tapdaq.sdk.layout
    55 com.tapdaq.sdk.listeners
     4 com.tapdaq.sdk.model
    32 com.tapdaq.sdk.model.ads
    11 com.tapdaq.sdk.model.analytics
    19 com.tapdaq.sdk.model.analytics.StatsData
    73 com.tapdaq.sdk.model.launch
    54 com.tapdaq.sdk.moreapps
    98 com.tapdaq.sdk.network
    24 com.tapdaq.sdk.queues
    65 com.tapdaq.sdk.storage
    16 com.tapdaq.sdk.tasks
   897 com.tapjoy
  2030 com.tapjoy.internal
    22 com.tapjoy.mediation
     1 com.tapjoy.mraid
   118 com.tapjoy.mraid.controller
    34 com.tapjoy.mraid.listener
    47 com.tapjoy.mraid.util
   227 com.tapjoy.mraid.view
    45 com.unity3d.ads
    42 com.unity3d.ads.adunit
   225 com.unity3d.ads.api
    16 com.unity3d.ads.broadcast
    41 com.unity3d.ads.cache
    74 com.unity3d.ads.configuration
    36 com.unity3d.ads.connectivity
   125 com.unity3d.ads.device
    18 com.unity3d.ads.lifecycle
    31 com.unity3d.ads.log
     2 com.unity3d.ads.mediation
    26 com.unity3d.ads.metadata
    12 com.unity3d.ads.misc
    10 com.unity3d.ads.placement
    39 com.unity3d.ads.properties
    82 com.unity3d.ads.request
    49 com.unity3d.ads.video
    55 com.unity3d.ads.webview
    51 com.unity3d.ads.webview.bridge
    18 com.vungle.log
  6174 com.vungle.publisher
    34 com.vungle.publisher.env
    11 com.vungle.publisher.inject
    41 com.vungle.sdk
    14 dagger
    70 dagger.internal
     4 dagger.multibindings
     4 dalvik.system
     7 default
   301 extension.tapdaq
   210 java.io
   450 java.lang
    10 java.lang.ref
    60 java.lang.reflect
    22 java.math
   108 java.net
    44 java.nio
     3 java.nio.channels
     7 java.nio.charset
    20 java.security
     6 java.security.cert
     2 java.security.spec
     3 java.sql
    26 java.text
   421 java.util
   140 java.util.concurrent
    42 java.util.concurrent.atomic
    16 java.util.concurrent.locks
     3 java.util.jar
     2 java.util.logging
    11 java.util.regex
    14 java.util.zip
    13 javax.crypto
     3 javax.crypto.spec
     2 javax.inject
    12 javax.microedition.khronos.egl
     2 javax.net.ssl
    11 javax.script
     2 javax.security.auth.x500
     4 javax.xml.parsers
    10 org.apache.http
     1 org.apache.http.client
    14 org.apache.http.client.methods
     6 org.apache.http.entity
     2 org.apache.http.impl.cookie
     5 org.apache.http.message
     2 org.apache.http.params
    73 org.json
    12 org.w3c.dom
     6 org.xml.sax
    14 org.xmlpull.v1
    10 sun.misc

	game.appmanifest	/extension-tapdaq/content	Unknown	Problem

Can we please increase the priority on that one? Now at least you have a project you can test the multidex support on.

As far as I understand, you only need to add --multi-dex option for the dx command, include android-support-multidex.jar library and add android:name="android.support.multidex.MultiDexApplication" to the AndroidManifest.xml file under the application tag. That’s it.

Shouldn’t be too difficult, right?

Thanks!

4 Likes

Every time I’ve ran into multidex issue in the past it was because of including unnecessary packages (usually related to Google services) or the wrong packages in the past. It’s probably bandaid for something else that’s really wrong.

1 Like

That’s only a small part of google play services is included here. The extension is an ads mediator, so it has lots of classes for each ad network, hence the problem.

Even if I could somehow remove 4500 classes from the extension, it would still be very possible to hit the limit again when a regular developer includes this extension into his or her project along with any other extensions.

4 Likes

I’ve added a task for this (DEF-2888), and hopefully I can pick that up during the next sprint.

4 Likes

I hope the support for multidex is coming soon? Can’t build for android…

1 Like

I have to admit I’ve been completely consumed by the linux support :confused:
But I’ll look into it this sprint!

1 Like

After looking into it, I feel that I need slightly more time than I have for this sprint to research and test this properly (the deadline is tomorrow), but I’ll continue having it at the top of my list :slight_smile:

3 Likes

Any good news on this?

1 Like

To be honest, no. Although I did start with it briefly, it has continually been bumped down for more urgent fixes.
As it is right now, I’m not sure when it will get our full attention :confused:

Are there any workarounds to this? E.g. stripping some functions from the jar files? Seems unlikely all 65536+ functions should get used at runtime?

Ugh. Too bad.
Unfortunately no, no workaround. Every jar is used and it would be unrealistic to try to determine what functions are not used and recompile without them. Then repeat each time an SDK gets updated.

2 Likes

Doesn’t ProGuard have functionality to strip unused code? Could it be used to strip anything not used by the extension?

The limit can be easily exceeded if trying to integrate an ad mediation sdk. Most ad mediation services are a business logic wrapper over other ad sdks. For example integrating full Appodeal in Unity makes the project unable to build without Android Studio as the number of functions is about 90K. This can be solved by removing from the number of integrated ad providers.

Some other cases are Google Play Services or Firebase where it will put you over the limit if not stripping functionality.

I’m curious how many functions is a basic Defold bundle using (also suprised that the King SDK is quite lightweight in this regard).

2 Likes

Any news about the multidex support?

Unfortunately this has been continuously put on hold for other more urgent things.
I think the server part is mostly done, but there is some more research and testing needed to make sure it works for all devices. It’s good that you remind us, I should be able to pick this up next sprint.

6 Likes

Multi-dex support was released in Defold 1.2.120

4 Likes

Yay!

1 Like