Assigned
Status Update
Comments
fl...@obfusk.net <fl...@obfusk.net> #2
Confirmed w/ AGP 7.4.0
and Gradle 7.5
as well.
ju...@google.com <ju...@google.com>
je...@google.com <je...@google.com> #3
could you provide the exact list of files that are different ?
obviously, even better if you provide a repro project...
fl...@obfusk.net <fl...@obfusk.net> #4
I've built v1.22
on Debian and compared it to the APK from GitHub.
These files use CRLF in the GitHub APK but LF in my APK:
META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler
META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory
fl...@obfusk.net <fl...@obfusk.net> #5
For another app it's these files:
META-INF/services/c6.l
META-INF/services/javax.annotation.processing.Processor
META-INF/services/org.acra.collector.Collector
META-INF/services/org.acra.interaction.ReportInteraction
META-INF/services/org.acra.sender.ReportSenderFactory
META-INF/services/org.acra.startup.StartupProcessor
META-INF/services/x5.x
fl...@obfusk.net <fl...@obfusk.net> #6
For yet another app it's all .css
, .html
, and .js
files under assets/
+ all files in META-INF/services/
again.
je...@google.com <je...@google.com>
fl...@obfusk.net <fl...@obfusk.net> #7
This is still a very common issue with up-to-date AGP etc. Any chance of a fix?
Description
DESCRIBE THE ISSUE IN DETAIL
I've seen at least 5 different apps fail to build reproducibly because one build was done on Windows (usually with Android Studio) and the other on Linux (usually with
./gradlew assembleRelease
) and some files in the APK built on Windows have CRLF line endings whereas the same files have LF line endings in the build on Debian (but are otherwise 100% identical).Most commonly affected are files in
META-INF/services/
, but I've also seen HTML/CSS/JS files inassets/
with the same issue.Whilst there is a workaround it would be preferable if APKs built on different operating systems were always identical.
STEPS TO REPRODUCE
./gradlew assembleRelease
on DebianEXPECTED RESULT
Identical APKs (apart from the signature in the case of signed APKs).
ACTUAL RESULT
Non-identical APKs because of line ending differences (as described above).
VERSION INFO