android すべてのSDKライセンスを自動的に受け入れる





15 Answers

AndroidSDKは最終的にライセンスを受け入れることができます。

yes | sdkmanager --licenses
android gradle sdk android-gradle android-sdk-tools

gradleアンドロイドプラグイン2.2-alpha4

Gradleは、プロジェクトが依存する欠落しているSDKパッケージをダウンロードしようとします

それは驚くほどクールで、 JakeWhartonプロジェクトであることが分かっていました

しかし、SDKライブラリをダウンロードするには、次のことが必要です。ライセンス契約に同意するか、またはgradleがあなたに伝えます:

あなたは、以下のSDKコンポーネントの使用許諾契約書に同意していません:[Android SDK Build-Tools 24、Android SDK Platform 24]。 プロジェクトを構築する前に、ライセンス契約に同意し、Android Studio SDK Managerを使用して不足しているコンポーネントのインストールを完了する必要があります。 または、あるワークステーションから別のワークステーションにライセンス契約を移行する方法については、 http://d.android.com/r/studio-ui/export-licenses.html

そして、これは問題です。なぜなら、私はgradle build中にsdkの依存関係をすべてインストールしたいからです。

私は自動的にすべてのライセンスを受け入れるソリューションを探しています。 たぶんグラデルスクリプトですか? あなたはなにか考えはありますか ?

ありがとう!

[編集]

解決策は次のとおりです。

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

手動でインストールすることもできますが、それを行うのはgradleの新機能です。

[編集2]

より良い解決策は、sdkmanangerを使用することです。

yes | sudo sdkmanager --licenses



新しいsdkmanagerユーティリティの場合:

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"

yessesの間には少し遅れがあるので、コマンドはライセンスをしばらく放置するとハングアップすることがありますが、人間の介入は必要ありません。




残念ながら、OPが元々それを解決する方法は必ずしも機能しません。 エラーメッセージからあなたのビルドツールのバージョンを確認してください。 これは、それが欠けているビルドツールの上位バージョンである可能性があります。 その場合は、SDKマネージャを手動で起動し、ビルドツールを追加し、ライセンスを受け入れる必要があります。

OP命令ごとに、以下のようになります。

$ ./gradlew build

 
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> You have not accepted the license agreements of the following SDK components:
  [Android SDK Build-Tools 24.0.2].

...
BUILD FAILED

注:2017-04-16

androidツールは新しいsdkmanagerために推奨されなくなりました。 3月(2017)以降のJoe Lawsonのanswerとその後の記事をご覧ください。

次に、次のようにコマンドを調整します。

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
Refresh Sources:
  Fetching https://dl.google.com/android/repository/addons_list-2.xml
  Validate XML
  Parse XML
  Fetched Add-ons List successfully
  Refresh Sources
  Fetching URL: https://dl.google.com/android/repository/repository-11.xml
  Validate XML: https://dl.google.com/android/repository/repository-11.xml
  Parse XML:    https://dl.google.com/android/repository/repository-11.xml
...
Error: Ignoring unknown package filter 'build-tools-24.0.2'
-------------------------------
License id: android-sdk-license-xxxxxxxx
Used by: 
 - SDK Platform Android 7.0, API 24, revision 2
  - Android Support Repository, revision 39
-------------------------------

...

November 20, 2015
Do you accept the license 'android-sdk-license-xxxxxxxx' [y/n]: y

Installing Archives:
  Preparing to install archives
  Downloading SDK Platform Android 7.0, API 24, revision 2
  Installing SDK Platform Android 7.0, API 24, revision 2
    Installed SDK Platform Android 7.0, API 24, revision 296%)
  Downloading Android Support Repository, revision 39
  Installing Android Support Repository, revision 39
    Installed Android Support Repository, revision 3999%)
  Done. 2 packages installed.

これをもう一度実行しても、Gradleを幸せにしないでください。 だから、誰かが何か良いものを思い付くまで、手作業による受け入れは唯一の解決策です。 (してください!)




androidツールは廃止予定ですので、代わりにsdkmanagerを使用してsdkmanagersdkmanagerは、最初にライセンスファイルを受け入れると、ライセンスファイルも書き込みます。 使用しているSDKによってライセンスが変わります。

echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

いくつかのシステムで動作します。 それはすべてで動作しません。 一部のSDKのインストールでは、ファイルの改行なしでファイルのライセンスを取得すると予想されるため、echoコマンドに-nを追加してみてください。

echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

それが機能しない場合は、代わりにbase64エンコーディングを使用してみてください。

私のライセンスを発見するには:

$> rm ${ANDROID_HOME}/
$> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME}
$> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"

ライセンスに同意するよう促します。 受け入れた後、 ${ANDROID_HOME}/licenses/android-sdk-licenseコピーします。 あなたが常に何が書かれているかを確実に得るために、 base64使用base64

$> base64 ${ANDROID_HOME}/licenses/android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=

次に、 base64 -dを使用して、ファイルを正確に再作成できます。

$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license

書き込まれたファイルがsha1sumを実行して期待どおりのものであるかどうかを確認することができます。

$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249



現在、この質問に出くわした人はbuild-tools-24.0.2が廃止されたと考えられていることに注意してください。

 Error: Ignoring unknown package filter 'build-tools-24.0.2'

それらをインストールするように提案されているさまざまなコマンドを実行しているとき。

解決策は--allを追加することです:

android update sdk --no-ui --all --filter "build-tools-24.0.2"

また、32ビットLinuxの場合は、 ビルドツール23.0.1以降の すべて が64ビットのみであるため、実行されません。 32ビットのユーザーは23.0.1で立ち往生し、後でビルドツールを入手する唯一の方法は64ビットに切り替えることです。




SDK API番号25に関するエラーメッセージ:

android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository




私は、受け入れたライセンスファイルを使ってパブリックgit repoを作成することでこの問題を解決しました。 次に、 wgetを使用して、プロジェクトをビルドするために./gradlewを実行する前に、 [sdk-dir] / licensesディレクトリに必要なマシンでこれらのライセンスを取得します。




2018年にこの問題を抱えている人は誰でもOKです。上記の回答は私のためにはまったく機能しませんでした。 どのDID作業がAndroid SDKを起動していたのですか?ツールバーのDOWNLOADボタンをクリックし、適切なパッケージを選択してください。 ダウンロードが完了すると、ライセンス契約に同意することができます。




私はCordovaを使用している間、同じエラーが発生しました。

この問題は、Android SdkをAndroid Studioからapt install android-sdk adbし、 apt install android-sdk adb 。 そしてCordovaは私のホームディレクトリにあるファイルの代わりにaptを通してインストールされたファイルを呼び出していました。

私がbashでSDKへのパスを変更した後、それはうまくいった:

# Change path
export ANDROID_HOME="$HOME/Android/Sdk/"
echo "Android home = $ANDROID_HOME"
# Accept licenses
eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses"
# Run Cordova
cordova build android

その後、私はもう使用されていないシステムファイルをapt remove android-sdk adbapt remove android-sdk adb







cd $ ANDROID_HOME / tools / bin ./sdkmanager --update




走る

#react-native run-android 

その問題に会った。 手動でAndroid Studio - > Android SDK - > SDK Platformに移動します。Show Packages Detailをクリックしてチェックします:

+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image

パッケージをインストールするときは、accept license =>が問題を解決できることを確認します。




この問題には2つのアプローチがあります。

  1. 次のようにライセンス契約に同意してsdkツールをコマンドウィンドウで更新します。必要に応じてバージョンを変更してください。

    アンドロイドアップデートsdk --no-ui --filterビルドツール-25.0.2、android-25、extra-android-m2repository

  2. 2番目の方法は、ライセンスフォルダをAndroidのルートディレクトリにコピーすることです。 あなたの開発マシンを開いてAndroid Studioを開きます。 プロジェクト構造メニューからSDDの場所を探します。 (C:\ Users \ UserName \ AppData \ Local \ Android \ sdk)。 そのディレクトリの下には、ライセンスフォルダが必要です。 そのフォルダをコンテンツとともにコピーします。 あなたのJenkinsサーバーマシン(またはこの問題に直面している場所)に、そのフォルダーをandroid sdkルートフォルダーの下に貼り付けます。 (C:\ Users \ UserName.jenkins \ tools \ android-sdk)




私は次のように移動する:

/usr/lib/android-sdk/licenses

私は端末に入力しました:

echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_SDK/licenses/android-sdk-license"

root権限で それは今私のために働く。




私はWindows 10のマシンで上記のコマンドをすべて試しましたが、解決策はSDKMANAGERを使用してライセンスを確認し、不足しているバージョンのインストールを購入することでした




Related