簡體   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