问题
I am creating release APK using the following versions : node - 8.12.0 gradle - 4.10.2 ionic CLI - 4.0.5 Cordova - 8.0.0
When I run the
ionic cordova build android --prod --release
I am getting the following error.
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
When I place the "intellij-core-26.0.1" URL in browser, its showing status 404.
Anyone, Please suggest
回答1:
Seems that the problem started early today.
There's a few things that could work:
The step that worked for me was:
Edit "\platforms\android\CordovaLib\build.gradle" instead "\platforms\android\build.gradle" and put jcenter() after maven… as posted here
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
You can try:
Edit 'platforms/android/build.gradle', you can see more here, as pointed by 'netexpo', here, in the Ionic forum.
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}
Another one:
Posted by MeterMoDev here
Was able to build as well but did the following:
Closed Android Studio also had VS closed. Removed the Android platform. Add the Android platform again. Before running any builds open up the \platforms\android\build.gradle and edit the repositories like @netexpo recommended, and save the file. Open up your project in Android Studio waited for studio do sync the gradle file, it downloaded a couple of items. After the sync process was completed the file had been build.
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
回答2:
ionic cordova platform remove android
ionic cordova platform add android@7.0.0
回答3:
Go to platforms/android/build.gradle
Change this:
jcenter()
maven {
url "https://maven.google.com"
}
to
maven {
url "https://maven.google.com"
}
jcenter() //Just move this line
回答4:
Following on from Ruben Sala's suggestion, that didn't work for me. However, if you edit platforms/android/CordovaLib/build.gradle
, and apply the same fix Ruben suggests, it does.
I.e. change:
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
To:
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
回答5:
Changing the buildscript section in platforms\android\CordovaLib\build.gradle from
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
to
repositories {
google()
jcenter()
}
fixed the issue for me. CLI and AS are building fine now.
回答6:
I fixed it by editing \platforms\android\build.gradle file (line 39) to this: // Allow plugins to declare Maven dependencies via build-extras.gradle.
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}
回答7:
If anyone is having issues in CI(Jenkins/Travis) instead of making manual changes every time build hook can be handy 😉
create file at 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;
}
and in config.xml
configure it for before_compile
<platform name="android">
<hook src="config/before_compile_android.js" type="before_compile" />
...
p.s. I have not written entire script but modified it to resolve this issue
回答8:
Try
ionic cordova platform remove android
ionic cordova platform add android@latest
This was for me what ended up working. Nothing else was doing the trick
ps. it installed android 7.1.4
来源:https://stackoverflow.com/questions/52947906/ionic-3-prod-release-build-issue-with-intellij-core-26-0-1