2017-11-15 4 views
0

WindowsビルドサーバーのJenkinsでAndroidビルドパイプラインを準備しています。 Jenkinsは多くのワークスペースを使用し、それらを再利用することがよくあります。私は、Jenkinsがワークスペースを再利用するときに問題はなく、ビルドが完璧に進んでいることに気付きました。しかし、最初に新しいワークスペースをチェックアウトすると、グラデルラッパーはAndroidビルドツールをインストールできないと不平を言う。ビルドツール(正確なバージョン)は既にインストールされています。Androidスタジオで開かない限り、GradleはAndroidビルドツールを手に入れません

別の古いワークスペースを開いてそこでgradleビルドを実行すると、完全に動作し、同じログインで同じセッションのcmdセッションで新しいワークスペースに移動して同じコマンドを実行すると、 Androidビルドツールをインストールすることはできません。

Androidの設定に関する注意:私はC:\android-sdk\にAndroid SDKを保存しており、すべてのユーザーにそのディレクトリへのアクセス権を与えました。 ANDROID_HOMEおよびANDROID_SDKは、システム全体の変数として設定されます。これは最も便利なソリューションです。ログインするユーザー、ドメインアカウントなどは、理論的には独自のSDKを設定せずにすぐにソリューションを構築することができます。複製されたSDKデータの

Android Studioでワークスペースフォルダを開いて手動で問題を解決できます。これを一人で行うだけで問題を解決するようです。私の仮説は、どこに、Androidのビルドツールがどこにあるかをgraleに伝えるプロジェクトメタデータにキャッシュされた値があり、Android Studioを開くと、この値が更新されるという仮説です。

明らかに、人間の介入なしにビルドが一貫して動作する必要があるため、回避策は適切ではありません。このキャッシュを更新するために使用できるコマンドはありますか?あるいは、gitにチェックインされているはずの設定ファイルがありますか?

答えて

0

Gradleは、SDKの優先度の高い順に2つの場所を探します。まず、local.propertiesファイルでSDKが指定されているかどうかを確認します。次に、ANDROID_HOME(ANDROID_SDKではない)システム変数を試行します。 Android Studioでフォルダを開くと、local.propertiesファイルが生成されます。そのため、その回避策が機能しました。

local.propertiesファイルはありませんでしたが、Android SDKではなくAndroid StudioのインストールフォルダにANDROID_HOMEが設定されていました。 SDKに移動してJenkinsエージェントサービスを再起動したとき、それは機能しました。

関連する問題