如何知道android sdk的哪个jar文件包含我需要的类

Posted

技术标签:

【中文标题】如何知道android sdk的哪个jar文件包含我需要的类【英文标题】:How to know which jar file of android sdk contains the class I need 【发布时间】:2013-05-30 22:28:57 【问题描述】:

我想从源代码在eclipse中重新创建android uiautomator.jar(不是整个android框架),并且需要:

import android.accessibilityservice.UiTestAutomationBridge; 
import android.os.SystemService;

但看到以下错误:

package android.accessibilityservice does not exist
package android.os does not exist

我正在使用安卓 sdk-17。从sdk附带的源代码中,我可以看到包确实存在,它们在sources/android-17/android下,我可以看到java源文件在那里。

我的构建路径只包含android.jar,显然它不包含这些包。有没有办法知道我应该包括哪个罐子?我了解整个android框架需要在Linux环境中编译。是否可以使用 Eclipse 编译 uiautomator。它只是一个用于 UI 测试的 jar 文件。谢谢。

【问题讨论】:

【参考方案1】:

据我了解您的问题,您想要的是导入 .jar 格式的外部库。 (将库添加到项目的 java 构建路径中)在这种情况下,您不需要编译整个框架。 您可以导入所需的任何外部库。 在日食中:

Right click your project >> Select Properties >> Java build path >> Libraries >> Add External JARs 

并选择您需要从本地磁盘导入的库 (uiautomator.jar)。

【讨论】:

我真正的问题是:哪个 jar 文件包含我需要的 java 包(如 android.accessibilityservice 和 android.os)。【参考方案2】:

嗯,有两种方法可以查看 jar 文件:

在 Eclipse 中,一旦将 jar 文件添加到项目中,您就可以打开它们并查看内部 在命令行中,可以使用jar -tf。例如,如果您使用的是 linux,则可以尝试: jar -tf somejarfile.jar | grep 无障碍服务 在 Windows 上,您可以尝试: jar -tf somejarfile.jar |查找 /i "无障碍服务" ...然后在不同的 jar 文件上尝试这些,直到找到包含所需内容的那个。

【讨论】:

以上是关于如何知道android sdk的哪个jar文件包含我需要的类的主要内容,如果未能解决你的问题,请参考以下文章

android-support-v4在sdk哪个位置

Android SDK 工具第 19 版:外部 jar 文件问题

如何将PayPal sdk与Gradle Android集成

如何将 PayPal sdk 与 Gradle Android 集成

Android怎么把一个现有工程打包成sdk

android studio怎么知道哪个jar包被重复引用