在我的具有minSdkVersion 16的Android项目中,我已将Apache Commons Compress更新为最新的1.18
一切正常(构建,运行),直到我在装有Android 4.1的旧Xoom设备上对其进行了测试
它没有崩溃,但是工作不正确,真的很难诊断出什么问题。
我最终得到一些日志记录,例如
无法解析静态字段(UTF_8) Ljava / nio / charset / StandardCharsets
NoClassDefFoundError;初始化时抛出 Lorg / apache / commons / compress / archivers / zip / ZipEncodingHelper
然后发现问题是在前19个Android中缺少对java.nio.charset的支持。
问题1:是否可以在较旧的设备上增加对Java 1.7和更高版本的支持?因此,所有趋向于最低要求的Java 1.7或更高版本的最新库都可以使用。这样的设备没有问题。可能是一些Google Play设置吗?
第1季度的猜测答案为否。所以...
问题2:如果要在较旧的设备上运行我们的应用,是否应该使用Android JDK 1.6最低的库(例如,minSdkVersion 16)。我设法解决了迁移到最新的Commons Compress 1.12(最低1.6 JDK)的问题
问题3:是否有一种方法可以检查所有依赖项是否可以在旧设备上运行而无需在此类设备上测试应用程序?例如,某些工具可以针对特定的Android SDK验证依赖项。