如何查找 Android 类引入了哪个 API 级别?
Posted
技术标签:
【中文标题】如何查找 Android 类引入了哪个 API 级别?【英文标题】:How to find which API level an Android class has been introduced? 【发布时间】:2020-06-28 13:19:37 【问题描述】:我创建了一个新的 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(并放弃了,因为我不想针对如此限制的东西)。有人在another question 上发表评论认为情况并非如此,因此这个问题是双重的。
在哪里可以找到特定类的目标 API 级别? documentation on WebViewAssetLoader就不说了。
我的项目中是否缺少某些内容,例如额外的 JAR 是可选的?
【问题讨论】:
【参考方案1】:我得出结论,我需要的 API 是 28
这并不是真正发生的事情。
您正在尝试导入androidx.webkit.WebViewAssetLoader
。该包的第一部分是androidx
。每个androidx
类都来自一个库。显然,您根本没有那个库。
在理想情况下,您可以访问 the official JavaDocs for that class 并被告知哪个 Jetpack 库包含它。这不是一个理想的世界。
所以,这就是我费力维护AndroidX Tech 来填补这些文档空白的原因。如果您在“类”下拉菜单中选择“W*”,您将找到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
,您应该一切顺利。
【讨论】:
哇,谁能想到会发生这样的事情?看起来一团糟......感谢您维护这样一个网站! +1 "这不是理想的世界"。来自 .net,大多数事情都是 nuget 搜索,到目前为止,Java(tm) 的处理方式是一段艰难的旅程。以上是关于如何查找 Android 类引入了哪个 API 级别?的主要内容,如果未能解决你的问题,请参考以下文章
Java:知道一个类的路径,如何知道这个类是来自哪个Jar包呢
关于eclipse中java项目管理中如何查找哪个类文件包含main