Copy link to clipboard
Copied
Hi,
When using Air SDK 25, Multidex support seems to be working great on any Android device running on version 5.0 or later, but it fails when I try to run in an older version, like 4.1.2. I believe this is due to lack of support for this part of the Multidex feature:
Multidex support prior to Android 5.0: Configure Apps with Over 64K Methods | Android Studio
It seems to me this should be part of the Adobe Air SDK, but until it's not, does anyone have any suggestion on what can I do to fix this? I really need to make my game run in older devices since they are still a big part of our userbase.
Thanks.
Copy link to clipboard
Copied
Actually, I wonder if my issue is related to these ones:
Problems with multidexing in Air 25
Meaning, I need to list all the classes that fail to load from the second dex file in the keep file. The issue in that scenario is that I don't have access to the name of all classes inside the JAR I'm using since it's obfuscated. In fact, even if it wasn't, adding the class that logcat say it's missing and ALL its dependencies sound like a lot of work. I wonder if this is the only solution.
I've tested again here and can confirm that the multidex feature seems to be working fine in an Android 7.x version but when running on 4.1.2 the class not found exception is raised for some classes.
Copy link to clipboard
Copied
I don't know if this will help your situation, but you can use dexdump to list the classes in a dexfile, I don't think obfuscation will interfere with that:
dexdump classes2.dex | grep 'Class descriptor'
Copy link to clipboard
Copied
Thanks for the suggestion, Peter, but in my case that lists the whole list of classes of a particular JAR I added (Vungle) and most of the classes in the list are indeed obfuscated. I've tried adding just some of these classes to the keep file (especially the one that logcat say it's missing) but didn't fix the issue. I cannot just copy all of them to the keep file because I'll get the 64k limit.