下载最新的Android Studio(android-studio-bundle-162.3871768-windows
)。
我们在我们的软件中使用了com.android.sdklib.SdkManager
类,但在最新的Android Studio中,我无法在jar
文件夹中的任何tools\lib
中找到上述类。
有谁能建议什么是更好的选择?
答案 0 :(得分:0)
如果您想获得为知识安装的所有目标的列表,那么您只需运行SDK管理器即可。但是因为你想调用getTargets()方法,这意味着你需要它用于其他目的。检查android studio网页上的文档,找出你要搜索的类是否存在以及它的jar文件的位置。
答案 1 :(得分:0)
我们可以在下面的链接中找到所有android类的源代码。
SdkManagerCli类具有等效方法listPackages()
,它将列出包。
我们需要将sdklib-25.3.2.jar,repository-25.3.2.jar和common-25.3.2.jar导入到项目中。 以下是列出包的工作代码: -
import java.io.File;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.TreeSet;
import com.android.repository.Revision;
import com.android.repository.api.ConsoleProgressIndicator;
import com.android.repository.api.LocalPackage;
import com.android.repository.api.ProgressIndicator;
import com.android.repository.api.RepoManager;
import com.android.repository.impl.meta.RepositoryPackages;
import com.android.sdklib.repository.AndroidSdkHandler;
public class AndroidTesting {
public static void main(String[] args) {
listPackages();
}
private static void listPackages() {
AndroidSdkHandler mHandler = AndroidSdkHandler.getInstance(new
File("filePath")); //for eg:-sdk/platforms for API
ProgressIndicator progress = new ConsoleProgressIndicator();
RepoManager mRepoManager = mHandler.getSdkManager(progress);
mRepoManager.loadSynchronously(cacheExpirationMs, progress,
downloader, settings)(0, progress, null, null);
RepositoryPackages packages = mRepoManager.getPackages();
Collection<LocalPackage> locals = new TreeSet<LocalPackage>();
Collection<LocalPackage> localObsoletes = new
TreeSet<LocalPackage>();
for (LocalPackage local : packages.getLocalPackages().values()) {
if (local.obsolete()) {
localObsoletes.add(local);
} else {
locals.add(local);
}
Revision version = local.getVersion();
System.out.println(local.getDisplayName() + " "
+ local.getVersion() );
}
}
}