Проблема сборки релиза 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