Ошибка: не удалось найти org.jetbrains.kotlin: kotlin-stdlib-jdk8: 1.3.60-eap-25 в Ionic 3

Я неожиданно получаю следующую ошибку при создании приложения 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
}

Все та же ошибка.

69
задан Laurel 24 October 2019 в 21:45
поделиться

8 ответов

Проблема заключается в cordova-support-google-services плагин для Cordova.

Этот плагин build.gradle похож на это с сегодняшнего дня (24-го октября 2019):

dependencies {
    classpath 'com.android.tools.build:gradle:+'
    classpath 'com.google.gms:google-services:4.2.0'
}

более точно проблема заключается в этой зависимости:

classpath 'com.android.tools.build:gradle:+'

, Который является чрезвычайно хрупким способом определить зависимости. '+' знак здесь означает, "выбирают новую версию, доступную в repo". Если более новая версия публикуется в repo, и это повреждает сборку, то всем с этим плагином повредили их проекты. Сегодня это произошло. Поврежденная версия, которая выбирается, com.android.tools.build:gradle:4.0.0. Требуется некоторый материал Kotlin.

Именно поэтому необходимо ВСЕГДА замораживать зависимости для надежного разрабатывания проекта. Никогда не доверяйте более новому материалу. Эти компиляции зависимости, прекрасные, как это вчера сделало:

classpath 'com.android.tools.build:gradle:3.5.1'

Для тех, которые используют Cordova или ионический диалект, можно сделать быстрое исправление, чтобы быть в состоянии разработать проект путем замораживания зависимости в файле:

<projectroot>/platforms/android/cordova-support-google-services/<project>-build.gradle

Это не категорическое решение все же. При переустановке платформы андроида через Cordova, ошибка обнаружится снова. Специалист по обслуживанию проекта должен или заморозить зависимость или зафиксировать ее для поддержки gradle 4.0.0. Тем временем просто используйте фиксированное ветвление этого плагина.

74
ответ дан 24 November 2019 в 10:13
поделиться

Вот решение.

проблемой был точно репозиторий знатока ( здесь ), но проблема была с build.gradle от плагин cordova-support-google-services, таким образом, я добавил необходимую строку, и все в порядке теперь, я уже создал запрос получения по запросу к исходному repo ( здесь ). Но тем временем можно сделать то, что я сделал, просто замените в package.json текущий versiГіn с моим repo:

Прежде:

...
"cordova-support-google-services": "^1.3.1",
...

После:

...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...

после этого Вы будете иметь к:

  • папки Remove платформы и плагины
  • работают npm install

, Это - временное решение, в то время как запрос получения по запросу к основному repo принят, и npm пакет обновил

и вот именно, теперь можно разработать проект снова.

<час>

я использую ионические 4, и некоторые плагины требуют cordova-support-google-services, в случае, если у Вас нет его в Вашем package.json, ошибка могла быть с другим плагином, раз так добавьте package.json, таким образом, мы можем узнать, какой является проблемой.

<час>

ОБНОВЛЕНИЕ 24/ОКТЯБРЬ:

я изменил решение в своем repo как многие из Вас предложенный, теперь решение consinst только в фиксации зависимости: от: com.android.tools.build:gradle: + к пути к классу com.android.tools.build:gradle:3. + , это уже находится в моем repo, если Вы хотите видеть , что изменилось

29
ответ дан 24 November 2019 в 10:13
поделиться

РЕДАКТИРОВАНИЕ 28.10.19:

cordova-support-google-services был обновлен сегодня к версии 1.3.2, которая изменяет путь к классу от classpath 'com.android.tools.build:gradle:+'

к

classpath 'com.android.tools.build:gradle:3.+'

, который, кажется, фиксирует kotlin ошибку

Исходный Ответ

, я заставил мой создавать успешно путем выполнения следующего:

я отредактировал платформы-> андроид-> cordova-support-google-services-> myAppName-build.gradle

и изменился

maventCentral()

к [1 116]

    maven { url "https://maven.google.com" }
    maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }

, Который решил kotlin ошибку тогда, я получал другую ошибку, которую я разрешил путем изменения

classpath 'com.google.gms:google-services:4.2.0'

к [1 118]

classpath 'com.google.gms:google-services:4.1.0'

, Это тогда создало успешно.

29
ответ дан 24 November 2019 в 10:13
поделиться

Как дальнейшее временное приспособление к продолжению на предложение от @MisterSmith, используйте рычаг, чтобы повторно применить блокировку:

<hook src="scripts/fix_android_dep.sh" type="after_platform_add"/>

с этим чрезмерно многословным кодом удара:

#!/usr/bin/env bash

## temporary fix for android studio EAP issue
## SOURCE: https://stackoverflow.com/a/58536638/56545
if [ -d "platforms/android/cordova-support-google-services" ]; then
  file="platforms/android/cordova-support-google-services/app-build.gradle"
  from="classpath 'com.android.tools.build:gradle:+'"
  to="classpath 'com.android.tools.build:gradle:3.5.1'"

  change=`sed "s/$from/$to/" < "$file"`
  echo "$change" > "$file"
fi
5
ответ дан 24 November 2019 в 10:13
поделиться

Решение для ионного v3 и решение cordova

@Mister Smith решили мою проблему

, необходимо перейти к файлу

platforms/android/cordova-support-google-services

тогда

Замена

classpath 'com.android.tools.build:gradle:+'

[1 110]

classpath 'com.android.tools.build:gradle:3.5.1'

@Alternative решение, которое я нашел, к [1 111]

setup kotlin in your system :)
7
ответ дан 24 November 2019 в 10:13
поделиться

в моем проекте я фиксирую как это. (мой проект в kotlin)

buildscript{

    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

}

allprojects {
    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
   }
}
5
ответ дан 24 November 2019 в 10:13
поделиться

Ни одно из вышеупомянутого не работало на меня. Я закончил тем, что удалил плагин сервисов Google, и добавьте его.

cordova plugin rm cordova-support-google-services cordova plugin add cordova-support-google-services

2
ответ дан 24 November 2019 в 10:13
поделиться

Я должен был добавить maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' } и на верхний уровень build.gradle и на app модуль build.gradle. В обоих случаях и в buildscripts.repositories и в allprojects.repositories

2
ответ дан 24 November 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: