java - 如何确定 JAR 库/依赖项是否与旧的 Android 设备完全兼容?
问题描述
如何确定 JAR 库/依赖项是否与 API 级别相等的 Android 设备完全兼容,例如,minSdkVersion
?例如,在 Java 1.8 中,如果minSdkVersion
您的 Android 项目等于 16(Stream API、StandardCharsets 类、String.join() 方法等),则有些东西您不能使用。我写了一个“库”来演示这个问题:
import java.util.Arrays;
public final class Library {
private Library() {
}
public static void crash() {
Arrays.stream(new int[]{1, 2, 3}).close();
}
}
在安装了 Android 4.1 的设备上调用 crash() 方法导致java.lang.NoSuchMethodError
被抛出(如预期的那样):
java.lang.NoSuchMethodError: No static method stream([I)Ljava/util/stream/IntStream; in class Ljava/util/Arrays; or its super classes (declaration of 'java.util.Arrays' appears in /system/framework/core-libart.jar)
解决方案
推荐阅读
- android - 使用 kotlin 在 android studio 中循环播放 mp3?
- java - 如何查看或监控 AWS CodeStar 部署的 Spring 项目应用程序日志?
- swift - 为什么 URLSession.DataTaskPublisher 不发布值?
- python - 无法从“PIL”错误中导入名称“_imaging”
- c# - 为什么 Process.StandardOutput.ReadToEnd 与常规 StreamReader.ReadToEnd 的行为不同?
- cakephp - CakePHP 3:在 View Template 文件夹中排列元素文件
- amazon-web-services - S3 未能触发 aws lambda 且没有错误
- javascript - 三星手机键盘使用 onkeyup 监听器复制字母
- java - 在由文本,图像制作的gridlayout的recyclerview中添加标题
- networkx - NetworkXNotImplemented 错误:connected_components() 方法 - 无向图