最新のツールを使用してCordova Androidプロジェクトをビルドしようとしています。私は指示に従いました こちら :
$ cordova create myApp com.myCompany.myApp myApp
$ cd myApp
$ cordova platform add [email protected] --save
$ cordova requirements Android --verbose
しかし、結果は次のとおりです。
Running command: Android list targets
Command finished with error code 0: Android list,targets
Requirements check results for Android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed Android-25,Android-23
Gradle: not installed
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio
Error: CordovaError: Some of requirements check failed
at /usr/local/nodejs_next/lib/node_modules/cordova/src/cli.js:401:45
at _fulfilled (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:749:13)
at /usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:557:44
at flush (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:108:17)
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
Gradleを見つけることができないようです(それがどこにあるのかわかりません)。
reports CordovaとAndroid SDK Tools 25.3の問題を見てきましたが、これは異なるようで、25.2.3があります(以下を参照)。
次のものがあります(これはCentOS 6.8にあります)。
$ cordova --version
6.5.0
$ node --version
v6.10.2
$ npm --version
3.10.10
$ Java -version
openjdk version "1.8.0_121"
$ echo $Java_HOME
/usr/lib/jvm/Java-1.8.0
$ echo $Android_HOME
/usr/local/Android-sdk
# I installed the Android SDK from here
# https://developer.Android.com/studio/index.html#downloads
# under "Get just the command line tools"
$ /usr/local/Android-sdk/tools/bin/sdkmanager --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;23.0.3 | 23.0.3 | Android SDK Build-Tools 23.0.3 | build-tools/23.0.3/
build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2 | build-tools/25.0.2/
extras;Android;m2repository | 47.0.0 | Android Support Repository | extras/Android/m2repository/
extras;google;m2repository | 46 | Google Repository | extras/google/m2repository/
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
platform-tools | 25.0.4 | Android SDK Platform-Tools | platform-tools/
platforms;Android-23 | 3 | Android SDK Platform 23 | platforms/Android-23/
platforms;Android-25 | 3 | Android SDK Platform 25 | platforms/Android-25/
tools | 25.2.3 | Android SDK Tools 25.2.3 | tools/
UPDATE:
CordovaやAndroidのドキュメントのどこにも記載されていないようですが、Android StudioなしでAndroidコマンドラインツールを使用している場合は、Gradleを手動でインストールする必要があります。実行すると、PATH上にあるこのエラーはなくなります。
私を混乱させた追加の事柄:Android SDKツールの古いバージョンでは、tools/templates/gradle/wrapper/gradlew
にGradleラッパースクリプトがありました。これはGradleのインストールにも使用できますが、手動でインストールする方が簡単だとわかりました。これは、最新バージョンの時点で削除されたようです。
似たような問題があります。エラーが発生しました:
Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studi
しかし例外なし。 Ubuntuでそれを解決しました
Sudo apt-get install gradle
Ubuntuに最新バージョンのgradleをインストールできるコマンドも見つけました。最初に最初のコマンドが実行されたときにのみ機能します(おそらくいくつかの依存関係が間違っています)。
Sudo add-apt-repository ppa:cwchien/gradle
Sudo apt-get update
Sudo apt-get install gradle-ppa
動作しない場合は、次を試してください:
export PATH=$PATH:/opt/gradle/gradle-3.5/bin
詳細:
https://askubuntu.com/questions/915980/package-is-installed-and-is-not-detected-gradle/915993#91599
CentOSのインストール手順gradle
はこのリンクの下にあります
sdkman でgradleをインストールしています.
Sdkmanをインストールする
curl -s "https://get.sdkman.io" | bash
Gradleをインストールする
sdk install gradle 4.0.2
Android studioがインストールされている場合は、試してみてください。
export PATH="$PATH:/home/<username>/Android-studio/gradle/<gradle-4.0>/bin"
これで問題が解決しました。
Cordovaバージョン7.0.1を使用しており、Cordova Androidバージョンは6.2.3です。 Androidビルドの実行中に問題に直面していました。 Cordova CLIのみを使用し、Android studioを使用していません。
Cordovaで公式に修正される前のこの問題の簡単な回避策は次のとおりです。
check_reqs.js
ファイルを探しますandroidStudioPath
変数nullチェックのelse部分を次のようにget_gradle_wrapper
関数で編集します。既存のコード:
else { //OK, let's try to check for Gradle! return forgivingWhichSync('gradle'); }
変更コード:
else { //OK, let's try to check for Gradle! var sdkDir = process.env['Android_HOME']; return path.join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }
注:この変更は、Androidプラットフォームが削除されて再追加されるたびに行う必要があります
更新:私の場合、Android SDK内に既にgradleラッパーがあり、gradleを明示的にインストールする必要性を感じています。したがって、影響と労力を最小限に抑えるためにこの回避策を行いました
Windowsの場合:
-Gradleの最新バージョンをダウンロード( https://gradle.org/releases )
-フォルダーを作成し、ファイルを解凍します(C:\ Program Files(x86)\ gradleを使用します)
-binディレクトリを含むパスをコピーします(C:\ Program Files(x86)\ gradle\bin)
-パスC:\ Program Files(x86)\ gradle\bin(私の例では)を「パス環境変数」に設定します
変数名「パス」と変数値「C:\ Program Files(x86)\ gradle\bin」の両方:ユーザー変数テーブルとシステム変数テーブル
「プロンプトのコンマ行」を再度開く必要がある場合があります
テストするには、プロンプトでgradleと入力します。
次の行を~/.bash_profile
に追加することで、MacにGradleを追加できます。ファイルが存在しない場合は、touch ~/.bash_profile
を使用してください。この隠しファイルは、Command + Shift + .
を使用してFinderで表示できます
export PATH=${PATH}:/Applications/Android\ Studio.app/Contents/gradle/gradle-4.6/bin/
source ~/.bash_profile
を使用して、新しいパスを現在のターミナルセッションに直接ロードします。
私はこれをQiitaチュートリアルに従ってトラブルを解決しました。
環境:Cordova 8.1.1
、Android Studio 3.2
、cordova-Android 7.0.0
.profile
ファイルに設定します。export PATH = "/ Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH
source〜/ .profle
cordovaビルドAndroid
PS:[email protected]
がビルドエラーを引き起こす場合、プラットフォームバージョンを6.3.にダウングレードします。
拡張 https://stackoverflow.com/users/5540715/surendra-shrestha Linux(〜mint)ユーザー向けの回答:
1。インストール Android Studio (多くのツールはコマンドラインで廃止されているため、これが必要になる可能性があります)。著者の指示に従うと、Android Studioは/ usr/local/Android-studio /にインストールされます。執筆時点では、Android Studioのgradleバージョンは3.2です。ls /usr/local/Android-studio/gradle/
であなたのものを見てください。
2。 gradleコマンドを追加します。これは、@ surendra-shresthaが示唆するように(PATHの変更を保存するために〜/ .bashrcに記述する必要があります)PATHを拡張し、エイリアスecho 'export alias gradle=/usr/local/Android-studio/gradle/gradle-3.2/bin/gradle' >> ~/.bashrc && source ~/.bashrc
を追加して行うことができます。または、シンボリックリンクを作成:Sudo ln -sn /usr/local/Android-studio/gradle/gradle-3.2/bin/gradle /usr/bin/gradle
(これは私の選択でした)。
3。 cordova requirements
を実行して、すべてが正常であることを確認します。出力は次のようになります。
Requirements check results for Android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed Android-26,Android-25,Android-24,Android-23,Android-22,Android-21,Android-19,Google Inc.:Google APIs:19
Gradle: installed /usr/local/Android-studio/gradle/gradle-3.2/bin/gradle
私にとって問題は、私のAndroidバージョンがまだ最新のAndroid Studio 2.3.1と互換性のない6.1.2であったことでした。
だから私がやったのは
cordova platform rm Android cordova platform add [email protected]
OPの質問に答えるには:
Linuxを使用しているため、おそらく this guide に従ってgradleをインストールし、PATH
のエントリをgradle
実行可能ファイルを含むフォルダーに配置する必要があります。
CordovaにはAndroid Studioがあり、MacとWindowsのみの場合、gradleを探すコードがあります。こちらをご覧ください。
私はWindowsを使用しているため、OPの質問に半関連しています。
Android Studio 2.3.1
、[email protected]
、[email protected]
([email protected])にアップグレードした後、ターゲット25とgradleが見つからないため、ビルドの問題が発生しました。
最初の問題は、X.Zhangからのコメント(つまり、Android
をavdmanager
に変更)で解決されました。ところで、 がgithub に上陸したので、cordova-Androidは6.3.0で修正する必要があります(しかし、私はテストしませんでした)。
2番目の問題は次のとおりです。
問題はprocess.env['ProgramFiles']
が'C:\\Program Files (x86)';
に評価されるのに、C:\\Program Files
にAndroid Studioがあることでした。
そのため、この値を上書きするか、Android Studioを別の場所にインストールするのが簡単です。
// platforms/Android/cordova/lib/check_reqs.js
module.exports.get_gradle_wrapper = function() {
var androidStudioPath;
var i = 0;
var foundStudio = false;
var program_dir;
if (module.exports.isDarwin()) {
// ...
} else if (module.exports.isWindows()) {
// console.log(process.env['ProgramFiles'])';
// add one of the lines below to have a quick fix...
// process.env['ProgramFiles'] = 'C:\\Program Files (x86)';
// process.env['ProgramFiles'] = 'C:\\Program Files';
var androidPath = path.join(process.env['ProgramFiles'], 'Android') + '/';
両方のフォルダーを堅牢な方法で処理するための適切な修正方法がわからない(両方のフォルダーを反復処理する以外)。
明らかに、これはcordova-Androidプロジェクト自体で修正する必要があります。そうしないと、cordova platform rm
を行うたびに修正が失われます。
Cordova JIRAでチケットを開きました:
同じ問題ですが、brewを使用するMacでは非常に簡単です。
私はたくさん試しましたが、最終的にはうまくいきませんでした、
Sudo chmod -R a+rwx /Library/Java/JavaVirtualMachines *
Sudo chmod -R a+rwx *
Sudo chmod 777 {your-gradle-path}
すぐに働き始めた
ターミナルで実行:
$ Sudo apt-get update
$ Sudo apt-get install gradle
これはUbuntu 18.04で動作します
Cordovaを最新バージョンに更新すると、問題が解決するはずです。問題が解決しない場合は、環境変数にパスを設定してください(Windowsの場合)。例:システム変数値名GRADLE_HOME値D:\ Android\Android Studio\gradle\gradle-4.3.1(パスに置き換えてください)
おそらく最新のAndroid Studio 2.3.1をインストールしたため、コマンドAndroid list targets
をavdmanager list targets
に変更したため、修正する方法があります。
パス<Android-sdk>/tools/bin
をPATH
に追加します。これはMacOX用です
export PATH="$PATH:/Users/<username>/Library/Android/sdk/tools/bin"
cordovaプロジェクトコードの変更<your-cordova-project>/platforms/Android/cordova/lib/Android_sdk.js
。
変化する
module.exports.list_targets_with_Android = function() {
return superspawn.spawn('Android', ['list', 'targets'])
に
module.exports.list_targets_with_Android = function() {
return superspawn.spawn('avdmanager', ['list', 'targets'])