Я неожиданно получаю следующую ошибку при создании приложения Ionic 3 для Android.
Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25
У нас есть одно решение из Android Studio здесь , но после того, как я сделал изменения в моей build.gradle с помощью следующего кода я все еще получаю ошибку.
buildscript {
repositories {
...
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
}
allprojects {
repositories {
...
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
}
Мой файл build.gradle выглядит так после того, как я обновил Cordova и добавил вышеупомянутое решение.
buildscript {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
dependencies {
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.android.tools.build:gradle:3.3.0'
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
//This replaces project.properties w.r.t. build settings
project.ext {
defaultBuildToolsVersion="28.0.3" //String
defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Все та же ошибка.
android
cordova
ionic-framework
ionic3
build.gradle
Тапас Мукерджи
источник
источник
...
и удалили другие репозитории, которые уже были там?gradle:3.0.1
находится.Ответы:
Проблема заключается в
cordova-support-google-services
плагине для Cordova.Этот плагин
build.gradle
выглядит следующим образом (24 октября 2019 года):Точнее проблема заключается в этой зависимости:
Это чрезвычайно хрупкий способ определения зависимостей. Знак «+» здесь означает «получить самую последнюю версию, доступную в репо». Если в репозитории опубликована более новая версия, и она нарушает сборку, то у всех, у кого есть этот плагин, свои проекты нарушаются. Это случилось сегодня. Неработающая версия, которая извлекается
com.android.tools.build:gradle:4.0.0
. Это требует некоторых вещей Kotlin.Вот почему вам необходимо ВСЕГДА заморозить зависимости, чтобы надежно построить свой проект. Никогда не доверяй новым вещам. Эта зависимость прекрасно компилируется так же, как и вчера:
Для тех, кто использует Cordova или Ionic, вы можете сделать быстрое исправление, чтобы иметь возможность построить проект путем замораживания зависимости в файле:
Это не окончательное решение, хотя. Если вы переустановите платформу Android через Cordova, ошибка снова появится. Сопровождающий проекта должен либо заморозить зависимость, либо исправить ее для поддержки gradle 4.0.0. А пока просто используйте фиксированный форк этого плагина.
источник
ИЗМЕНИТЬ 10/28/19:
Сегодня cordova-support-google-services был обновлён до версии 1.3.2, которая изменяет путь к классам с
classpath 'com.android.tools.build:gradle:+'
в
classpath 'com.android.tools.build:gradle:3.+'
кажется, чтобы исправить ошибку kotlin
Оригинальный ответ
Я получил мой, чтобы успешно построить, выполнив следующие действия:
Я отредактировал платформы-> android-> cordova-support-google-services-> myAppName-build.gradle
и изменился
maventCentral()
в
Это решило ошибку kotlin, тогда я получил другую ошибку, которую я решил, изменив
в
Затем он успешно построен.
источник
cordova plugin rm cordova-support-google-services --force && cordova plugin add cordova-support-google-services
Вот решение.
Проблема была именно в репозитории maven ( здесь ), но проблема была в build.gradle из плагина cordova-support-google-services , поэтому я добавил нужную строку, и теперь все в порядке, я уже создал pull просьба к оригинальному репо ( здесь ). Но пока вы можете делать то, что я сделал, просто заменив в package.json текущую версию на мой репо:
Перед:
После:
после этого вам придется:
npm install
и все, теперь вы можете построить свой проект снова.
Я использую Ionic 4, и некоторые плагины требуют
cordova-support-google-services
, если у вас его нет в вашем package.json, ошибка может быть связана с другим плагином, если так, пожалуйста, добавьте package.json, чтобы мы могли выяснить, какой из них является проблема.ОБНОВЛЕНИЕ 24 / ОКТЯБРЯ:
Я изменил решение в своем репо, как многие из вас предложили, теперь решение сводится только к исправлению зависимости: от: com.android.tools.build:gradle:+ до classpath com.android.tools.build:gradle: 3. + , это уже в моем репо, если вы хотите увидеть, что изменилось
источник
в моем проекте я исправляю вот так. (мой проект в котлине)
источник
Раствор для ионных v3 и кордова
Решение @Mister Smith решило мою проблему
ты должен пойти в файл
тогда
замещать
classpath 'com.android.tools.build:gradle:+'
по
@ Альтернативное решение, которое я нашел, заключается в
источник
В качестве дополнительного временного исправления, следуя предложению @MisterSmith, используйте ловушку для повторного применения блокировки:
с этим чрезмерно многословным кодом bash:
источник
app-build.gradle
на%MY_APP_NAME%-build.gradle
. Спасибо!Пришлось добавить
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
как в верхний уровень, такbuild.gradle
и вapp
модульbuild.gradle
. В обоих случаях как в, такbuildscripts.repositories
и вallprojects.repositories
источник
Ничто из вышеперечисленного не помогло мне. В итоге я удалил плагин google-services и добавил его.
cordova plugin rm cordova-support-google-services cordova plugin add cordova-support-google-services
источник