web-dev-qa-db-ja.com

Cordovaビルドは、gradle-wrapper.propertiesファイルのdistributionUrlを変更します

実行すると、次のビルド例外が発生し続けます

 cordova run Android --verbose
  • 問題点:ルートプロジェクト「Android」の評価中に問題が発生しました。

    プラグインの適用に失敗しました[id 'Android'] Gradleバージョン2.10が必要です。現在のバージョンは2.2.1です。 gradleラッパーを使用する場合、C:\ Users\Project\gradle\wrapper\gradle-wrapper.propertiesのdistributionUrlをgradle-2.10-all.Zipに編集してみてください

この理由は、cordovaビルドコマンドを実行すると行が変更されるためです。

distributionUrl=http\://services.gradle.org/distributions/gradle-2.1.0-all.Zip

distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.Zip

これを防ぐ方法はありますか?

30
shamaleyte

推測できるように、「Cordova build Android」コマンドを発行すると、舞台裏で実行されるスクリプトがあります。 Gradleバージョンに指定された構成を表示するには、このスクリプトを見つける必要があります。

次のjsファイルを確認する必要があります。

$PROJECT_ROOT/platforms/Android/cordova/lib/builders/GradleBuilder.js

次に、ファイル内で次の変数を含む行を見つけます。

GradleBuilder.prototype.prepEnv

そして、distributionUrl変数を確認します。

var distributionUrl = process.env['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.2.1-all.Zip';

それがあなたが探しているものであり、gradle-2.10-all.Zip URLに変更する必要があるものです。

これで、ビルドコマンドを実行できます。

次のSOに触発された。 AndroidのCordovaビルドで使用するgradleをインストールする

73
shamaleyte

変数CORDOVA_Android_GRADLE_DISTRIBUTION_URLをエクスポートした方が良いと思います

例:

export
CORDOVA_Android_GRADLE_DISTRIBUTION_URL=http\\://services.gradle.org/distributions/gradle-2.14.1-all.Zip

たとえば、Macを使用している場合は、.bash_profileにexportコマンドを追加します

nano ~/.bash_profile
27
jordenysp

更新:2017年5月21日

OK以下は、グーグル、受け入れられた答えを読んで、試行錯誤から物事を解決することの組み合わせです。

他に何かを行う前に、。(実行中の場合はDockerを必ず閉じてください。症状は、Android Studioでは、エミュレーターの読み込みダイアログが静かに消えるだけです。アプリの起動コマンドから実行した場合、アプリケーションは単にデバイスへの接続を待機します(メッセージが発行されます)。

あなたがそれをやったがまだ動作しないと仮定して、読み進めてください。

オプション(多分):fyiのみ-個人的に SDK Man を使用して、一致するバージョンのGradleをマシンにインストールしました。

既に動作するAndroid MarshmallowまたはNougat(または両方)を備えたStudioエミュレーターを持っていると仮定します。

私の場合、それからCordovaを機能させようとしていました。

やり直すかどうかに応じて(推奨)、次のようにします。

_cordova platform rm Android
cordova platform add Android
_

最初にダウンロードが必要です。 OSに応じて以下をダウンロードします。

https://dl.google.com/Android/repository/tools_r25.2.3-windows.Zip

https://dl.google.com/Android/repository/tools_r25.2.5-linux.Zip

(Macで実行していたので、ダウンロードしました:)

https://dl.google.com/Android/repository/tools_r25.2.5-macosx.Zip

解凍し、templatesフォルダーを_/Users/arcseldon/Library/Android/sdk/tools_にコピーします

説明:_module.exports.check_gradle_関数の下の、_platforms/Android/cordova/check_reqs.js_の下で宣言されているロジックを参照して、gradleラッパーのパスを導出する方法を理解してください。これは強制します。

_$ echo $Android_HOME
/Users/arcseldon/Library/Android/sdk
_

toolsサブディレクトリが表示されましたが、その中にtemplatesフォルダがありませんでした。ダウンロードして解凍したZipからtemplatesフォルダーをコピーし、_$Android_HOME/tools_内に貼り付けます

次を含むパス階層で終了する必要があります。

_/Users/arcseldon/Library/Android/sdk/tools/templates/gradle/wrapper 
_

これは、スクリプトの観点からのパス検索を満たします。

次に、platforms/Android/build.gradleのCordovaアプリケーションを確認し、gradleVersionを検索します。

task wrapper(type: Wrapper) { gradleVersion = '2.14.1' }

ご使用のバージョンについては、次のURLからダウンロードしてください。

https://services.gradle.org/distributions/gradle-X.Y.Z-all.Zip

バージョンに合わせて、必要に応じてX、Y、Zを置き換えます。

私の場合、

https://services.gradle.org/distributions/gradle-2.14.1-all.Zip

他の例:

https://services.gradle.org/distributions/gradle-3.3-all.Ziphttps://services.gradle.org/distributions/gradle-2.4-all.Zip

次に、ダウンロードしたら、ローカルドライブに置き、ENVで参照します。変数。例えば。 (バージョンへの変更)

_export CORDOVA_Android_GRADLE_DISTRIBUTION_URL=file:///Users/myusername/temp/gradle-2.14.1-all.Zip
_

説明:検索を実行すると、この環境変数がこのenvのオプションのオーバーライドであることがわかります。変数。 _check_gradle_で宣言された_platforms/Android/cordova/lib/builders/GradleBuilder.js_の変数の割り当てを参照してください

今すぐ実行:

_cordova run Android --verbose
_

すべてが順調に進み、すべてがAndroidで「機能する」はずです。私の場合、iOSはそのままで使用できましたが、他の理由でXcode 8.3ではなくXcode 8.2を使用しました。

12
arcseldon

これは偶然Android StudioがCordovaプロジェクトをビルドして無限のエラーを引き起こしたためです。

あなたができる間、自分を救う:

cordova platform rm Android
cordova platform add Android
4
Lightbeard

以下を試して問題を解決してください。

Windowsでは、File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home

Mac OSでは、変更Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home

それ以外の場合は、デフォルトのgradleラッパーを使用してProject\gradle\wrapper\gradle-wrapper.properties file's distributionUrl このような:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.Zip
1
Gandhi

ファイルproject/platforms/Android/build.gradleを開いて更新してみてください

依存関係{
classpath 'com.Android.tools.build:gradle:X.X.X'
}

そして

task wrapper(type:Wrapper){
gradleVersion = 'X.X'
}

こちらのリファレンスを参照してください https://developer.Android.com/studio/releases/gradle-plugin.html#updating-gradle

X.Xを変更するには

0
linhadiretalipe