Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
Locked
0

Support for multidex using SDK 25 on devices older than 5.0

New Here ,
Apr 21, 2017 Apr 21, 2017

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.

TOPICS
Development
694
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 24, 2017 Apr 24, 2017

Actually, I wonder if my issue is related to these ones:

multiDexKeepFile

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Apr 24, 2017 Apr 24, 2017

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'

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 25, 2017 Apr 25, 2017
LATEST

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines