繁体   English   中英

SdkManager类在最新的android SDK中不可用

[英]SdkManager class is not available in latest android SDK

下载了最新的android Studio( android-studio-bundle-162.3871768-windows )。 我们在软件中使用com.android.sdklib.SdkManager类,但在最新的Android Studio中,我无法在tools\\lib文件夹中的任何jar找到上述类。

谁能建议对此有更好的选择?

如果您想获取已安装的所有目标列表以获取知识,则只需运行SDK管理器即可。 但是,由于要调用getTargets()方法,因此意味着您需要将其用于其他目的。 查看android studio网页上的文档,以查找您要搜索的类是否存在以及其jar文件的位置。

我们可以在下面的链接中找到所有android类的源代码。

https://javalibs.com/artifact/com.android.tools/sdklib?className=com.android.sdklib.tool.SdkManagerCli&source

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() );
            }

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM