Проблема сборки релиза Ionic 3 prod с intellij-core-26.0.1
Я создаю релиз 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
Когда я размещаю URL-адрес "intellij-core-26.0.1" в браузере, он показывает статус 404.
Кто-нибудь, пожалуйста, предложите
Ответы
Ответ 1
Кажется, проблема началась сегодня рано.
Есть несколько вещей, которые могут сработать:
Шаг, который работал для меня, был:
Измените "\ platform\android\CordovaLib\build.gradle" вместо "\ platform\android\build.gradle" и поместите jcenter() после maven… как опубликовано здесь
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
Ты можешь попробовать:
Отредактируйте "platform/android/build.gradle", вы можете увидеть больше здесь, как указано в "netexpo", здесь, на форуме Ionic.
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}
Другой:
Написал MeterMoDev здесь
Был в состоянии построить, но сделал следующее:
Закрытая Android Studio также была закрыта VS. Удалена платформа Android. Добавьте платформу Android еще раз. Перед запуском каких-либо сборок откройте\платформы\android\build.gradle, отредактируйте репозитории, как рекомендуется @netexpo, и сохраните файл. Откройте свой проект в Android Studio, дождитесь, пока студия выполнит синхронизацию файла Gradle, он загрузил пару элементов. После завершения процесса синхронизации файл был собран.
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
Ответ 2
Ионная платформа Cordova удалить Android
Ионная платформа Cordova добавить [email protected]
Ответ 3
Перейти на platforms/android/build.gradle
Изменить это:
jcenter()
maven {
url "https://maven.google.com"
}
в
maven {
url "https://maven.google.com"
}
jcenter() //Just move this line
Ответ 4
Вслед за предложением Рубена Сала, это не сработало для меня. Тем не менее, если вы редактируете platforms/android/CordovaLib/build.gradle
и применяете то же исправление, которое предлагает Рубен, оно делает.
Т.е. изменить:
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
Для того, чтобы:
repositories {
maven {
url "https://maven.google.com"
}
jcenter()
}
Ответ 5
Изменение раздела buildscript в платформах \android\CordovaLib\build.gradle из
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
в
repositories {
google()
jcenter()
}
исправил проблему для меня. CLI и AS сейчас в порядке.
Ответ 6
Я исправил это, отредактировав файл \platform\android\build.gradle (строка 39) так://Разрешить плагинам объявлять зависимости Maven через build-extras.gradle.
allprojects {
repositories {
mavenCentral()
maven {
url "https://maven.google.com"
}
jcenter()
}
}
Ответ 7
Если у кого-то возникают проблемы с КИ (Дженкинс/Трэвис) вместо того, чтобы вносить изменения вручную, каждый раз, когда может быть полезен хук сборки 😉
создать файл в 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" />
...
PS Я не написал весь сценарий, но изменил его, чтобы решить эту проблему
Ответ 8
Пытаться
ionic cordova platform remove android
ionic cordova platform add [email protected]
Это было для меня тем, что в итоге сработало. Больше ничего не получалось
пс. на нем установлен андроид 7.1.4