-
Notifications
You must be signed in to change notification settings - Fork 226
Description
This is actually a problem of processing proguarded jars on a case-insensitive filesystem (OSX, Windows, etc) and working with android
Typical build process that I do on android when using retrolambda:
- compile classes
- unpack all jars into retrolambda processing directory
- run retrolambda
- pack into a new jar
- hand off to dex
The problem is at step 2, when one or more of the input jars is processed by proguard, it does name obfuscation in such a way that there might be class com.example.a and com.example.A (for example see crashlytics which has a com.crashlytics.android.a and com.crashlytics.android.A). When the jars are unpacked, the a and A classes become a single file which are now improperly named.
This happens whether with unpacking all jars, or running retrolambda after running proguard. This seems to be a pretty difficult problem to solve without having retrolambda process directly into output jar files to bypass filesystem case insensitivity issues.