secondary-dex-gradle
secondary-dex-gradle copied to clipboard
Support obfuscation at release
After proguard obfuscation no one know how the packages are mapped. So its hard to split specific packages into multi dex files. maybe it can be read from the generated mapping.txt
The proguard option -keeppackagenames org.spongycastle
may help, but after this the dex process is failing
10:56:00.940 [ERROR] [system.err] UNEXPECTED TOP-LEVEL EXCEPTION:
10:56:00.941 [ERROR] [system.err] com.android.dx.cf.iface.ParseException: class name (org/spongycastle/a/q) does not match path (org/spongycastle/a/Q.class)
10:56:00.942 [ERROR] [system.err] at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
10:56:00.942 [ERROR] [system.err] at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
10:56:00.943 [ERROR] [system.err] at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
10:56:00.948 [ERROR] [system.err] at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
10:56:00.948 [ERROR] [system.err] at com.android.dx.command.dexer.Main.processClass(Main.java:665)
10:56:00.948 [ERROR] [system.err] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
10:56:00.949 [ERROR] [system.err] at com.android.dx.command.dexer.Main.access$600(Main.java:78)
10:56:00.949 [ERROR] [system.err] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
10:56:00.950 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
10:56:00.950 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
10:56:00.953 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
10:56:00.960 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
10:56:00.960 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
10:56:00.961 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
10:56:00.961 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
10:56:00.961 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
10:56:00.961 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
10:56:00.962 [ERROR] [system.err] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
10:56:00.962 [ERROR] [system.err] at com.android.dx.command.dexer.Main.processOne(Main.java:596)
10:56:00.962 [ERROR] [system.err] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
10:56:00.964 [ERROR] [system.err] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
10:56:00.965 [ERROR] [system.err] at com.android.dx.command.dexer.Main.run(Main.java:230)
10:56:00.965 [ERROR] [system.err] at com.android.dx.command.dexer.Main.main(Main.java:199)
10:56:00.966 [ERROR] [system.err] at com.android.dx.command.Main.main(Main.java:103)
10:56:00.966 [ERROR] [system.err] ...while parsing org/spongycastle/a/Q.class
For release version we don't need dex splitting now and we skip this process, but would be great to support it