首页 > 解决方案 > 如何确定 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)

标签: javaandroid

解决方案


推荐阅读