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


441

Gradle Androidプラグイン以降 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にアクセスしてください。

そして、これは問題です。実行中にすべてのSDK依存関係をインストールしたいのです。 gradle build

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

ありがとう!

[編集]

解決策は実行することでした:

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

そして手動でインストールしますが、それはそれを行うためのgradleの新機能の目的です。

[編集2]

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

yes | sdkmanager --licenses

12
echo y |そのコマンドの前にをポップして、ライセンスを自動的に受け入れることもできます。ヘッドレスCIボックスで実行するときに便利です:)
Dori

3
ツールが私の家にローカライズされていた~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repositoryためにやらなければならなかったandroid
Jacksonkr

7
sdkmanager --licensesが機能しなくなりました。--upgradeを使用し、エラーを無視して、ライセンスの問題をソートしました。
jcsubmit 2017年

6
このコマンドをCI環境のビルドスクリプトに少し調整して使用しました。--sdk_root = $ ANDROID_SDK_PATHを追加しました。問題は、ライセンスが受け入れられ、Android SDKルートフォルダーに保存されなかったことです。最後のコマンド:はい| sdkmanager --licenses --sdk_root = $ ANDROID_SDK_PATH(sudoなし)
adi9090

3
$ANDROID_SDK_PATHSDKをインストールした実際のルートパス/opt/android-sdkyes | sdkmanager --licenses --sdk_root=/opt/android-sdk
例:)に

回答:


365

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

yes | sdkmanager --licenses

編集:

@MoOxのコメントで指摘されているように、macOSでは

yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Windowsの@ pho、@ mikebridge、@ Noitidartのコメントで指摘されているように、

cmd.exe ""/K"%LocalAppData%\Android\sdk\tools\bin\sdkmanager.bat --licenses"

前にjavaをインストールしてください


4
未亡人の場合C:\Users\x1\AppData\Local\Android\sdk\tools\androidは、[実行]をクリックしてGUIを開き、インストールされていないものをインストールし、新しいダイアログで[ライセンスを受け入れる]をクリックしてポップアップしました。
Noitidart 2017

8
これはLinuxでは機能しません。tools / binディレクトリまたは他の場所にsdkmanagerファイルはありません。手伝ってくれませんか?
Mehmed Mert 2018年

36
macOSでは、次のことができますyes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
MoOx 2018年

5
Gradleラッパーからライセンスを自動的に受け入れるにはどうすればよいですか?
Howard Swope 2018年

7
パスの@Noitidartに賛成投票しましたが、機能しませんでした。コマンドプロンプトからC:\ Users \ x1 \ AppData \ Local \ Android \ sdk \ tools \ bin \ sdkmanager --licensesを実行して、「y "+プロンプトに入力
GaneshT

177

alpha5プレビューでこれに遭遇しました。

ジェイク・ウォートンはあなたが現在使用できることを私に指摘しました

mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

$ANDROID_HOME/licenseマシン上に現在のフォルダーを再作成します。これは、エラーメッセージのリンク(http://tools.android.com/tech-docs/new-build-system/license)で説明されているプロセスと同じ結果になります。

ハッシュはライセンステキストのsha1sであり、定期的に更新されると考えられるため、このコードは非常に長い間のみ機能します。

そして手動でインストールしますが、それはそれを行うためのgradleの新機能の目的です。

androidツールを使用して名前付きコンポーネントのライセンスを受け入れたときでも、これがそのままでは機能しないことに最初は驚きましたが、/licensesフォルダーを作成するAS内のSDKマネージャーが指摘されました。

法的な理由から、公式ツールはこのステップをスキップしたくないと思います。

記載されているリリースノートを再度読む

SDK自動ダウンロード:Gradleは、プロジェクトが依存している不足しているSDKパッケージをダウンロードしようとします。

これは、Androidツールをまだインストールしておらず、最新のライセンスをすでに受け入れている場合に機能するという意味ではありません。

編集:それを言って、私がSDKをASにリンクするまで、それはまだ私のテストgubuntuボックスで動作しません。CIは正常に機能しますが、違いはわかりません...


一部のコンポーネント(たとえば、support-v4)に関するsdkDownload機能に小さな不具合があります。それはなりますコンポーネントのアップデートが可能ですが、Gradleのは、次の呼び出しまでの更新は表示されません。gradleを2回実行する1つの回避策、1回は破棄するgradle依存関係|| - code.google.com/p/android/issues/detail?id=212309
ジョーBowbeer

6
mkdir -p代わりに使用できます|| true
oldergod

このグリッチに感謝します。SDKパスが期待どおりに定義されているかどうかを確認するには:echo $ ANDROID_SDK
tryp

私の環境ではANDROID_SDKは定義されていませんが、ANDROID_HOMEで動作します
Dimitri L.

5
@stack_ved:もう1つ追加しましたechoecho -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license"。しかし、あなたの問題はどこかに隠れていると思います。
Paul

132

最新のAndroid Studio(2.3)の場合、すべてのライセンスを更新/承認するには、次のコマンドを実行するのが最善の方法です。

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

セットアップに基づいて、ライセンスファイルを他の場所にコピーする必要がある場合があります。


これは最善の方法のように見え、すべてのプラットフォームでも機能します。実行するだけですtools/bin/sdkmanager --licenses
jnv

古いSDKマネージャーを入手した場合-ライセンスは機能しません。toolsフォルダーを別の場所にコピーしてから--sdk_root =を使用し、それをsdkフォルダーにポイントする必要があります。そうすると、ツールを新しいバージョンに更新できます。
Mirek Michalak 2017年

yes自動ビルドシステムの場合、どうにかしてこのコマンドにパイプで接続できますか?これらのマシンへのインタラクティブなコンソールアクセスが常にできるとは限らないためy、キーボードを物理的に押しても機能しません。
void.pointer 2017年

誰でも私にこのソリューションを実装する方法を教えてもらえますか?この行をbuild.shに追加しましたか?
stack_ved

1
それは私にとってはうまくいったが、cd $ANDROID_HOMEこのコマンドを実行する前に私はしなければならなかった
Inus Saha

57

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

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

yesとyesの間に少し遅れがあるので、コマンドはしばらくの間ライセンスが表示されたままハングする可能性がありますが、人間の介入は必要ありません。


私のインストールでは、debian9にはsdkmanager.jarのみがあります:android-sdk-linux / tools / lib / sdkmanager.jarと#java -jar /android-sdk-linux/tools/lib/sdkmanager.jarエラー:ツールディレクトリプロパティ設定されていない、あなたはアンドロイド実行していることを確認してください
user3313834

1
これは、SDKツールをGoogleからアーカイブとしてダウンロードし、$ ANDROID_HOMEに解凍したという前提に基づいています
A. Rager

これが最もup-to-date答えのようです。そうです--licenses、もはや存在しません。注:提供され得る可能なバージョンのリストを参照するには:$ANDROID_HOME/tools/bin/sdkmanager --list
マリノスアン

2
ヒントをありがとう。yes | android-sdk-linux/tools/bin/sdkmanager --licenses || trueCIで使用してしまいました。
iSWORD 2018

es | $ ANDROID_HOME / tools / bin / sdkmanager "build-tools; 28.0.3"->バージョンを変更するとうまくいきました。よろしくお願いします!
ishab acharya

43

Jenkinsを使用している場合は、ビルドプロセスの最初のステップとして次のbashスクリプトを使用できます。

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

もちろん、これによりすべての利用可能なアップデートがインストールされますが、ディスク容量を節約できる場合は時間を節約できます。この場合、「yes」は適切に機能しないため、インストールプログラムのreadlineの破損を回避するためにスリープ状態になります。

編集:組み込みのSDKマネージャーを使用している場合は、ビルドステップに「Androidプロジェクトの前提条件のインストール」プラグインを追加して、正しい$ ANDROID_HOMEを取得する必要もあります。


Ubuntuで実行されているjenkinsビルドの「cordova platform add android」の前にコード行を追加しますが、それでも次のエラーが発生します:7秒で構築が失敗しましたエラー:/ var / lib / jenkins / workspace / qa_global_php / platforms / android / gradlew :コマンドは終了コード1で失敗しましたエラー出力:FAILURE:ビルドは例外により失敗しました。*問題点:ルートプロジェクト「android」の構成中に問題が発生しました。>あなたは、次のSDKコンポーネントのライセンス契約を受け入れていない:
アシシュKarpe

[Android SDK Build-Tools 26.0.2]。プロジェクトをビルドする前に、使用許諾契約に同意し、Android Studio SDK Managerを使用して不足しているコンポーネントのインストールを完了する必要があります。
Ashish Karpe

32

残念ながら、OPが最初に解決した方法は常に機能するとは限りません。エラーメッセージから、ビルドの現在のビルドツールバージョンは何ですか。不足しているのは、ビルドツールの上位バージョンである可能性があります。その場合、SDK Managerを手動で起動し、ビルドツールを追加してライセンスに同意する必要があります。

OPの指示に従って、それは次のようになります。

$ ./gradlew build

 
このビルドのJVM設定を尊重するために、新しいJVMがフォークされます。デーモンの使用を検討してください:https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html。

失敗:ビルドは例外で失敗しました。

* 何が悪かったのか:
プロジェクト ':app'の構成中に問題が発生しました。
>次のSDKコンポーネントの使用許諾契約に同意していません。
  [Android SDK Build-Tools 24.0.2]。

...
ビルドに失敗しました

注:2017-04-16

このandroidツールは、新しいを支持して廃止されましたsdkmanager。ジョーローソンの回答と3月(2017)以降の投稿をご覧ください。

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

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
ソースを更新:
  https://dl.google.com/android/repository/addons_list-2.xmlを取得しています
  XMLを検証する
  XMLを解析
  正常にアドオンリストを取得しました
  ソースを更新
  URLの取得:https://dl.google.com/android/repository/repository-11.xml
  XMLの検証:https://dl.google.com/android/repository/repository-11.xml
  XMLを解析:https://dl.google.com/android/repository/repository-11.xml
...
エラー:不明なパッケージフィルター 'build-tools-24.0.2'を無視します
-------------------------------
ライセンスID:android-sdk-license-xxxxxxxx
によって使われた: 
 -SDK Platform Android 7.0、API 24、リビジョン2
  -Android Support Repository、リビジョン39
-------------------------------

...

2015年11月20日
ライセンス「android-sdk-license-xxxxxxxx」に同意しますか[y / n]:y

アーカイブのインストール:
  アーカイブをインストールする準備
  SDK Platform Android 7.0、API 24、リビジョン2のダウンロード
  SDK Platform Android 7.0、API 24、リビジョン2のインストール
    インストールされているSDKプラットフォームAndroid 7.0、API 24、リビジョン296%)
  Android Support Repository、リビジョン39のダウンロード
  Android Support Repository、リビジョン39のインストール
    インストール済みのAndroidサポートリポジトリ、リビジョン3999%)
  できました。2つのパッケージがインストールされています。

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


1
android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repositoryコマンドプロンプトから管理者権限でこれを実行すると、エラーが修正されました。phonegapプラグインマネージャ
Ravimallya 2017年

32

これは私のエラーを解決しました

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

2
いくつかの文字を保存するためにyes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"、同じことを行います。
Flimzy

31

Jenkinsでプロジェクトをビルドすると同じ問題が見つかりました。ではbuildToolsVersion '25.0.2'、ビルドする前にライセンスを受け入れる必要があります。私たちの場合、実行する必要がありました:

yes | sdkmanager --update sdkmanager自体のライセンスを受け入れ、次に

yes | sdkmanager --licenses 以前に受け入れられなかった新しいライセンスを受け入れる

覚えておいてください。これらのコマンドは、同じユーザーで実行しjenkinsてください。私たちのDebianでは、Jenkinsユーザーはちょうどjenkinsです。言い換えるrootと、承認済みのライセンスを作成するようにそれを行うroot、、Jenkinsはそれらを読み取りません。

ちなみに、で見つけましsdkmanager/var/lib/jenkins/tools/android-sdk/tools/bin。あなたのものがそこにない場合は、それを見つけてくださいfind / -name "sdkmanager"


2
これは私の場合も問題を解決しました(ビルドツール26.0.x)。DockerのJenkinsで。ありがとう!
Giordano

1
残念ながら、これには質問の「自動的に」の部分は含まれていません。
m0skit0

@ m0skit0コメントありがとうございます!人間の介入なしにすべてのライセンスを自動的に受け入れるように、最新バージョンの機能と一致するように質問を更新しました。
Roc Boronat

24

androidツールは廃止され、あなたが使用する必要がありますsdkmanager代わりに。sdkmanagerは、最初に同意したときにライセンスファイルも書き込みます。コマンドは、使用しているSDKによってライセンスが変更されます

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

一部のシステムで動作します。すべてでは機能しません。一部のSDKインストールでは、ファイルの改行なしでファイルを終了することを想定している-nため、echoコマンドにを追加してみてください。

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 ${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

19

あなたが実行した場合yes | sdkmanager --licenses、我々はの内容を印刷し$ANDROID_HOME/licenses/android-sdk-license

私たちはこれを手に入れます

# cat $ANDROID_HOME/licenses/android-sdk-license

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

GitLab CIの場合、Android SDK Build-Tools 26.0.2ライセンスを受け入れるには、これを実行する必要があります

before_script:
  - mkdir -p $ANDROID_HOME/licenses
  - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license

あなたは2番目のエコーが同じになる$ANDROID_HOME/licenses/android-sdk-licenseつもりですこれは意図されていますか?すなわち。追加
Ryan R

1
@RyanR、はい、2番目のエコーが追加Android SDK Build-Tools 26.02され、新しいライセンスsha1文字列が追加されました
jk2K 2017年

私はbitbucketパイプラインを使用していますが、コンセプトはGitLab CIと同じようです。あなたの答えは私がプロセス全体をよりよく理解するのに役立ちました。ありがとう!
Ridcully 2017年

@Ridcully私もBitbucket Pipelinesを使用していてBuild-Tools 26.0.2、アップグレードしてビルドが壊れたときにここにいることがわかりました。私の最終的な解決策は、単に行うことyes | sdkmanager --licensesでした。echoは必要ありません。これは将来の保証です。
Ryan R

@ライアンあなたは私が 'はい'を追加できることを意味します| sdkmanager --licenses 'をpipeline.ymlに?いいね!
Ridcully 2017年

16

現在この質問に参加している人にとっては、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ビットに切り替えることです。


1
ええ、ビルドツールはにぶつかっただけ25.0.1です。
not2qubit 2016年

1
build-tools-25と
gradle

14

使用するtools/bin/sdkmanager --licenses場合でも、人間との対話が必要です。gitlab CIの使用に問題があります。これは私の解決策です:

wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
unzip -qq tools.zip
echo y | tools/bin/sdkmanager "platforms;android-25"
echo y | tools/bin/sdkmanager "platform-tools"
echo y | tools/bin/sdkmanager "build-tools;25.0.2"
echo y | tools/bin/sdkmanager "extras;android;m2repository"
echo y | tools/bin/sdkmanager "extras;google;m2repository"

echo y 質問がある場合は「はい」と表示されますが、インストールパッケージごとに1行を作成する必要があります


数か月後もまだかなり関連しています。ありがとうございました。あなたは私の日を救った:)
Prasanna Ramaswamy

これは、GitLabを使用していても役に立ちました
sebasira

13

単に実行することもできます:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

そして、Windowsでは、次のコマンドを実行します。

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

11

SDK api番号25に関するエラーメッセージの場合:

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


10

2018年の時点でこの問題が発生している人はOKです。上記の回答は私にはまったく役に立ちませんでした。Android SDKを開いていたDIDの動作-ツールバーの[ダウンロード]ボタンをクリックし、適切なパッケージを選択しました。ダウンロードが完了すると、ライセンス契約に同意したことになります。

ここに画像の説明を入力してください


7

承認されたライセンスファイルを使用して、公開gitリポジトリを作成することで、この問題を解決しました。次にwget。/ gradlewを実行してプロジェクトをビルドする前に、必要なマシンの[sdk-dir] / licensesディレクトリにこれらのライセンスをフェッチするために使用します。


6

コマンドラインSDKに問題がある場合、承認したライセンスが見つからないのは、ライセンスが別の場所に書き込まれているためです。 $ANDROID_HOME/licensesは、必要とはためです。

最も簡単な解決策は、次のようなライセンスを受け入れることです。

$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME

注:これはANDROID_HOME、SDKがインストールされている場所を指すように設定していることを前提としています。



6

Windowsの場合、cmdを開き、binコマンドを実行してディレクトリに移動します。

cd C:\Users\username\AppData\Local\Android\sdk\tools\android\Sdk\tools\bin

次にsdkmanager --licensesコマンドを実行すると、ライセンスの受け入れを求められます。


1
ありがとう、これが私がしたことです
mynameisjohnj

取得Error: Unknown argument --licenses
deanwilliammills

4

私はようやくWindowsで解決策を見つけ、本当のサイレントで自動インストールを実現しました。

Windowsでは、次の構文は機能しません。

echo y | sdkmanager --licenses

「y」がバッチで呼び出されたJavaプログラムに正しく送信されていないようです。

回避策は、複数の「y」を含むファイルfile-y.txtを1行ずつ作成し、使用することです。

call sdkmanager --licenses < file-y.txt

これにより、必要なファイルがライセンスディレクトリに作成されます。問題はおそらくJavaでのBufferedReaderの使用に関連しています



3

Windows PowerShellでは、次のことができます

for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses

これははるかに柔軟であり、手動による介入は不要です。30の数値は任意であり、ライセンスの受け入れ数をカバーするのに十分でなければなりませんが、必要に応じて増やすことができます


Windowsを使用しないもう1つの理由。
m0skit0

3

Cordovaを使用しているときにも同じエラーが発生しました。

この問題は、Android Studioとを使用aptしてAndroid Sdkをインストールしたことが原因apt install android-sdk adbでした。そして、コルドバは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 adb


3

これが私のDockerセットアップです。
単純なLinux環境からフォローできます。

yes |--licenses --sdk_root=${ANDROID_HOME}句に注意してください。
それは思わsdkmanager --update戻します契約をするので、yes |二回登場しています。

FROM openjdk:8
# Install dev-essential(gnumake)
RUN apt update
RUN apt install -y build-essential
# Set ENV
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
    ANDROID_HOME="/usr/local/android-sdk" \
    ANDROID_VERSION=28 \
    ANDROID_BUILD_TOOLS_VERSION=28.0.3 \
    GRADLE_VERSION=4.10.3 \
    NDK_VERSION=r16b
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
    && cd "$ANDROID_HOME" \
    && curl -o sdk.zip $SDK_URL \
    && unzip sdk.zip \
    && rm sdk.zip \
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses --sdk_root=${ANDROID_HOME}
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
    "platforms;android-${ANDROID_VERSION}" \
    "platform-tools" --sdk_root=${ANDROID_HOME}
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
RUN mkdir /opt/gradle
RUN unzip gradle-${GRADLE_VERSION}-all.zip -d /opt/gradle
ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin
# Install NDK
RUN wget https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip
RUN mkdir /opt/ndk-bundle
RUN unzip android-ndk-${NDK_VERSION}-linux-x86_64.zip -d /opt/ndk-bundle
ENV PATH=${PATH}:/opt/ndk-bundle

RUN mkdir /application
WORKDIR /application

「sdkmanager --updateは契約を元に戻すため、はい|が2回表示されます。」うわー、あなたは正しいです。これは非常にイライラしますが、良い発見です。
セファス

2

次のコマンドを実行すると、すべてのライセンスに同意できます。

 sdkmanager --licenses

これにより、まだ同意していない各ライセンスが表示されます。各ライセンスyを受け入れるために入力するだけです。


「自動」
m0skit0

2

私はWindows 10マシンで上記のコマンドをすべて試しましたが、解決策はSDKMANAGERを使用してライセンスを確認して受け入れることです。

ここに画像の説明を入力してください


CMDコマンドはどれも私には機能せず、このソリューションだけが機能しました。ありがとう
deanwilliammills

2

このパスは最近のバージョンで変更されています。 ./sdkmanager今入っ/Library/Android/sdk/cmdline-tools/latest/binているだけで

./sdkmanager --licenses

2

注:これはMacユーザー専用です

同じ問題がありましたが、フォルダが存在しないため、回答が投稿されませんでした(Mac OS 10.14.4でAndroid 3.6.3を使用toolsしていますLibrary/Android/sdk.

エラーのスクリーンショット

以下の手順は、ライセンス問題のエラーを克服するのに役立ちました:

  1. 開いた Android Studio
  2. を押しcmd + shift + Aます。Actionsポップアップウィンドウが開きます。
  3. 検索しSDK ManagerてEnterキーを押して開きます。
  4. これにより、ポップアップが開きます Android SDK。すでにインストールされているAndroid以外のバージョンのAndroidを選択します。(私の場合、Android 10.0が既にインストールされているので、Android 9.0を選択しました)
  5. 次に、Applyボタンを選択します。これにより、対応するSDKがインストールされます。

解決

  1. アプリを実行すると、例外なく機能するはずです

成功のスクリーンショット


ねえ、これはLinuxmint 19.3で私の問題を解決します
GaryP

1

走る

#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

パッケージをインストールするときは、ライセンスの受け入れを確認してください=>問題を解決できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.