次のバージョンを使用してリリースAPKを作成しています:node-8.12.0 gradle-4.10.2 ionic CLI-4.0.5 Cordova-8.0.0
実行すると
ionic cordova build Android --prod --release
次のエラーが表示されます。
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':CordovaLib'.
> Could not resolve all files for configuration ':CordovaLib:classpath'.
> Could not find intellij-core.jar (com.Android.tools.external.com-intellij:intellij-core:26.0.1).
Searched in the following locations:
https://jcenter.bintray.com/com/Android/tools/external/com-intellij/intellij-core/26.0.1/intellij-core-26.0.1.jar
ブラウザに「intellij-core-26.0.1」URLを配置すると、ステータス404が表示されます。
誰でも、提案してください
問題は今日早く始まったようです。
動作する可能性のあるものがいくつかあります。
私のために働いたステップは:
「\ platforms\Android\CordovaLib\build.gradle」ではなく「\ platforms\Android\build.gradle」を編集して、jcenter() maven… here に掲載
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
あなたは試すことができます:
'platforms/Android/build.gradle'を編集すると、 'netexpo'が指すように here がさらに表示されます。 ここ 、Ionicフォーラム。
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}
もう1つ:
MeterMoDevによる投稿 here
ビルドすることもできましたが、次のことを行いました。
閉じたAndroid StudioもVSを閉じました。 Androidプラットフォームを削除しました。 Androidプラットフォームを再度追加します。ビルドを実行する前に、\ platforms\Android\build.gradleを開き、推奨される@netexpoなどのリポジトリを編集し、ファイルを保存します。 Android Studioでプロジェクトを開き、studioがgradleファイルを同期するのを待って、いくつかのアイテムをダウンロードしました。同期プロセスが完了した後、ファイルはビルドされました。
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
イオンコルドバプラットフォームはAndroidを削除します
イオンコルドバプラットフォームは[email protected]を追加します
platforms/Android/build.gradle
に移動します
これを変更:
jcenter()
maven {
url "https://maven.google.com"
}
に
maven {
url "https://maven.google.com"
}
jcenter() //Just move this line
ルーベン・サラの提案に続いて、それは私にとってはうまくいきませんでした。ただし、platforms/Android/CordovaLib/build.gradle
、およびルーベンが示唆するのと同じ修正を適用します。
つまり変化する:
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
に:
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
Platform\Android\CordovaLib\build.gradleのbuildscriptセクションを次から変更します
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
に
repositories {
google()
jcenter()
}
私のために問題を修正しました。 CLIとASは現在正常に構築されています。
ビルドフックが便利になるたびに手動で変更を行うのではなく、CI(Jenkins/Travis)で問題が発生している場合は????
config\before_compile_Android.js
にファイルを作成します
module.exports = function(ctx) {
'use strict';
var fs = ctx.requireCordovaModule('fs'),
path = ctx.requireCordovaModule('path'),
deferral = ctx.requireCordovaModule('q').defer(),
async = require('async');
var platformRoot = path.join(ctx.opts.projectRoot, 'platforms/Android');
var gradleFiles = [path.join(platformRoot, 'build.gradle'), path.join(platformRoot, 'CordovaLib', 'build.gradle')];
async.each(gradleFiles, function(f, cb) {
fs.readFile(f, 'utf8', function(err, data) {
if (err) {
cb(err);
return;
}
var result = data;
if (data.indexOf("maven.google.com") >= 0) {
console.log("Mirror already present in gradle file.\nSkipping...");
}else{
result = data.replace(/jcenter\(\)/g, 'maven{url "https://maven.google.com"}\njcenter()');
}
fs.writeFile(f, result, 'utf8', cb);
});
}, function(err) {
if (err) {
deferral.reject();
} else {
deferral.resolve();
}
});
return deferral.promise;
}
config.xml
でbefore_compile
用に設定します
<platform name="Android">
<hook src="config/before_compile_Android.js" type="before_compile" />
...
p.s。スクリプト全体を書いたわけではありませんが、この問題を解決するためにスクリプトを修正しました
\ platforms\Android\build.gradleファイル(39行目)を編集して修正しました://プラグインがbuild-extras.gradleを介してMaven依存関係を宣言できるようにします。
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}