如何找到 API 级别引入了 Android class?

How to find which API level an Android class has been introduced?

我创建了一个新的 Android 项目,目标 API 15 并使用 androidx。自动生成的 Hello world 是:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

向其添加 import androidx.webkit.WebViewAssetLoader 失败并返回 Cannot resolve symbol webkit

所以我尝试创建另一个项目,这次目标是 API 级别 27,结果相同,我得出结论,我需要的 API 是 28(因为我这样做而放弃了不想针对如此限制性的东西)。有人评论 表明情况并非如此,因此这个问题是双重的。

  1. 在哪里可以找到特定 class 目标的 API 级别? documentation on WebViewAssetLoader就不说了。

  2. 我是不是在我的项目中遗漏了什么,例如额外的 JAR 是可选的?

and I concluded that the API I needed was 28

实际情况并非如此。

您正在尝试导入 androidx.webkit.WebViewAssetLoader。该包的第一部分是 androidx。每个 androidx class 来自图书馆。显然,您根本没有那个库。

在理想情况下,您将能够访问 the official JavaDocs for that class 并被告知哪个 Jetpack 库包含它。这不是一个理想的世界。

所以,这就是为什么我要费心维护 AndroidX Tech, to fill in some of these documentation gaps. If you choose "W*" in the "Classes" drop-down, you will find WebViewAssetLoader is part of the androidx.webkit:webkit library、版本 1.1.0 或更高版本。

现在(2020-03-17),1.2.0是最新版本,所以添加:

implementation "androidx.webkit:webkit:1.2.0"

到模块 build.gradle 中的 dependencies,你应该可以开始了。