Hai Zhang created COMPRESS-611: ---------------------------------- Summary: commons-compress 1.21 became incompatible below Android 8.0 Key: COMPRESS-611 URL: https://issues.apache.org/jira/browse/COMPRESS-611 Project: Commons Compress Issue Type: Bug Affects Versions: 1.21 Reporter: Hai Zhang
The change https://github.com/apache/commons-compress/commit/06e05dab3bcb9044cc599f0ff18be78c54a8fbae added a static LinkOption[] array into IOUtils, and also made use of LinkOption in tar code. However, LinkOption is a Java 8 class that's only available on Adnroid 8.0 and beyond. And with the static field in IOUtils, which will result in loading the LinkOption class during IOUtils class initialization, this suddenly made all classes referencing IOUtils to require Android 8.0. In comparision, most of the functionalities in commons-compress 1.20 was working fine on Android 5.0+. I discovered this because a real user wrote to me about this issue, and a lot of users in developing countries may still be using older devices, so it seems to me supporting Android 5.0+ may still be a good thing. Meanwhile according to https://www.androidpolice.com/googles-latest-android-version-distribution-numbers-show-11-in-dead-heat-with-10/ , raising supported Android platform version from 5.0 to 8.0 will result in the percentage of supported device to decrease from 98% to 82.7%, a >10% decrease. So could you kindly consider supporting Android 5.0 again by making the usage of Java 8 NIO file APIs optional? -- This message was sent by Atlassian Jira (v8.20.1#820001)