2017-05-11 5 views
0

最新のアンドロイドスタジオ(android-studio-bundle-162.3871768-windows)をダウンロードしました。 私たちのソフトウェアでcom.android.sdklib.SdkManagerクラスを使用していましたが、最新のAndroidスタジオでは、tools\libフォルダー内にあるjarに上記のクラスは見つかりませんでした。最新のアンドロイドSDKではSdkManagerクラスが利用できません

誰かがこれのためのよりよい選択肢であることを示唆することはできますか?

+1

あなたはそれをどのように使っていたのですか?おそらくあなたは同じ 'sdkmanager'を使ってみることができます – akash93

+1

SdkManagerクラスにあるgetTargets()メソッドを使ってインストールされたすべてのターゲットのリストを取得したいと思います。 –

答えて

0

知識用にインストールされたすべてのターゲットのリストを取得したい場合は、単にSDKマネージャを実行するだけです。しかし、getTargets()メソッドを呼び出そうとしているので、他の目的のために必要です。アンドロイドスタジオのWebページにあるドキュメントを調べて、検索しているクラスとそのjarファイルの場所が存在するかどうかを調べます。

0

すべてのアンドロイドクラスのsoureコードは、次のリンクにあります。

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

     } 
    } 
関連する問題