Hata: Ionic 3'te org.jetbrains.kotlin: kotlin-stdlib-jdk8: 1.3.60-eap-25 bulunamadı


81

Android için Ionic 3 uygulaması oluştururken aniden aşağıdaki hatayı alıyorum.

Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25

Burada Android Studio'dan bir çözümümüz var ama build.gradle dosyasında aşağıdaki kodla değişiklik yaptıktan sonra hala hatayı alıyorum.

buildscript {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

allprojects {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

Cordova'mı güncelledikten ve yukarıdaki çözümü ekledikten sonra build.gradle dosyam şöyle görünüyor.

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
}

Yine de aynı hata.


...Zaten orada bulunan diğer depoları koydunuz ve sildiniz mi?
ianhanniballake

Hayır. Ben sadece maven url değiştirdim.
Tapas Mukherjee

Peki, yayınladığınız şey değilse build.gradle dosyanız gerçekte nasıl görünüyor? Çünkü hata mesajınız bulunduğunuz havuzu sildiğinizi söylüyor gradle:3.0.1.
ianhanniballake

Lütfen açıklamayı kontrol edin. Build.gradle kodumu ekledim. URL'yi yeni değiştirdim.
Tapas Mukherjee

Yalnızca edilmelidir ekleyerek varolan herhangi hatlar yerine değil, yeni çizgiler. Hangi çizgiyi değiştirdiniz?
ianhanniballake

Yanıtlar:


75

Sorun, cordova-support-google-services Cordova eklentide .

Bu eklenti build.gradlebugün itibariyle şöyle görünüyor (24 Ekim 2019):

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

Daha doğrusu sorun bu bağımlılıkta yatıyor:

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

Bu, bağımlılıkları belirlemenin son derece kırılgan bir yoludur. Buradaki '+' işareti, "depoda bulunan en son sürümü getir" anlamına gelir. Repo'da daha yeni bir sürüm yayınlanırsa ve yapı kırılırsa, bu eklentiye sahip herkesin projeleri kırılır. Bu bugün oldu. Getirilen bozuk sürümcom.android.tools.build:gradle:4.0.0 . Bazı Kotlin malzemeleri gerektirir.

Bu nedenle, projenizi güvenilir bir şekilde oluşturmak için DAİMA bağımlılıkları dondurmanız gerekir. Asla yeni şeylere güvenmeyin. Bu bağımlılık dün olduğu gibi iyi derlendi:

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

Cordova veya Ionic'i kullananlar için, dosyadaki bağımlılığı dondurarak projeyi oluşturabilmek için hızlı bir düzeltme yapabilirsiniz:

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

Bu kesin bir çözüm değil. Android platformunu Cordova üzerinden yeniden yüklerseniz hata tekrar görünecektir. Proje sorumlusu ya bağımlılığı dondurmalı ya da 4.0.0. Dereceyi desteklemek için düzeltmelidir Bu arada sadece bu eklentinin sabit bir çatalını kullanın.


Geçici bir çözümden bahsederken, bu benim için en hızlı ve açıklayıcı çözümdür. Teşekkürler
Tapas Mukherjee

Yine de bir sorum var. Uygulamam zaten oluşturulmuşsa ve telefona yüklüyse, bağımlılıklarda '+' kullanmak uygulamayı etkiliyor mu? Bir uygulamada çok fazla bağımlılık vardır ve hepsinin sürümünü korumak zordur.
Tapas Mukherjee

1
Uygulamamı Phonegap Build kullanarak derliyorum; 'Cordova-support-google-services' eklentisini dahil etmeme rağmen aynı hatayı alıyorum. Herhangi bir öneri? Özellikle, bunu config.xml dosyamda nasıl düzeltebilirim?
peterk

1
@peterk burada phonegap build community.adobe.com/t5/PhoneGap/…
r1si

3
Cordova-support-google-services eklentisi, sorunu çözen bağımlılıkları dondurduğu yeni bir sürüm ^ 1.3.2 yayınladı. Cevaplar bunu yansıtacak şekilde güncellenmelidir.
le0diaz

30

EDIT 10/28/19:

cordova-support-google-services bugün sınıf yolunu değiştiren 1.3.2 sürümüne güncellendi. classpath 'com.android.tools.build:gradle:+'

için

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

kotlin hatasını düzeltti gibi görünüyor

Orijinal Yanıt

Aşağıdakileri yaparak başarılı bir şekilde inşa etmek için benimkini aldım:

Platformları düzenledim-> android-> cordova-support-google-services-> myAppName-build.gradle

ve değişti

maventCentral()

için

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

Bu kotlin hatasını çözdü, sonra değiştirerek çözdüğüm farklı bir hata alıyordum

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

için

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

Daha sonra başarıyla inşa edildi.



2
@JimBergman ben resmi Android Studio web sitesinden KOTLIN URL'yi var: Referans androidstudio.googleblog.com/2019/10/...
DanielRead

1
"Kayıp Kotlin Maven repo için bilinen sorun" başlıklı bölüme ilerleyin
DanielRead

@DanielRead teşekkürler bunu şimdi görüyorum. Yine de bintray.com'daki dosyalara başvurmanın sorunu çözmenin bir yolu olduğunu düşünmüyorum. Mister Smith'in yukarıdaki çözümü çok daha iyi.
Jim Bergman

1
Eklentiyi güncellemek için şunu çalıştırın: cordova plugin rm cordova-support-google-services --force && cordova plugin add cordova-support-google-services
Klemens Zleptnig

29

İşte çözüm.

Sorun tam olarak maven deposuydu ( burada ), ancak sorun cordova -support-google-services eklentisinden build.gradle ile ilgili , bu yüzden gerekli satırı ekledim ve şimdi her şey yolunda, zaten bir çekme oluşturdum orijinal repo talebi ( burada ). Ama bu arada ne yaptığımı yapabilirsin, sadece pakette değiştir.json güncel sürümü benim repo ile:

Önce:

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

Sonra:

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

bundan sonra yapmanız gerekenler:

  • Klasör platformlarını ve eklentilerini kaldırma
  • Çalıştırmak npm install

Ana repo çekme talebi kabul edilirken ve npm paketi güncellendiğinde bu geçici bir çözümdür

ve işte bu, şimdi projenizi tekrar inşa edebilirsiniz.


Ionic 4 kullanıyorum ve bazı eklentiler cordova-support-google-servicespaketinizde yoksa, başka bir eklenti ile olabilir, eğer öyleyse lütfen paketi ekleyin. sorun.


GÜNCELLEME 24 / EKİM:

Dan: Ben sadece bağımlılık sabitleme içinde, çoğunuz benim repo şimdi çözüm consinst çözümünü önerdi değiştirdik com.android.tools.build:gradle:+ sınıf yolu için com.android.tools.build:gradle: 3. + , nelerin değiştiğini görmek istiyorsanız bu zaten repoumda


Birisinin bu repodaki bir şeyi onaylaması genellikle ne kadar sürer?
AndySousa

7

projemde böyle düzeltirim. (kotlin'deki projem)

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' }
   }
}

6

İyonik v3 ve cordova için çözüm

@Mister Smith çözümü sorunumu çözdü

dosyaya gitmelisin

platforms/android/cordova-support-google-services

sonra

değiştirmek

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

tarafından

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

@ Bulduğum alternatif çözüm

setup kotlin in your system :)

İşe yarıyor. Teşekkür ederim. Sanırım sürüm aynı build.gradle dosyasından ayarlayabilirsiniz
Nguyen Tran

1
@NguyenTran En son Gradle'ı kullanmak istiyorsanız Kotlin'i android studio ile sisteminizde kurmanın en gelişmiş ve en iyi çözüm olduğunu düşünüyorum, aksi takdirde projeniz tarafından desteklenen eski sürüm sınıfına sadık kalın. veya iyonik v3 için en iyi kepçe desteğini arayın.
Sayed Mohd Ali

5

@MisterSmith'in önerisini takip etmek için geçici bir düzeltme olarak , kilidi yeniden uygulamak için bir kanca kullanın:

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

bu aşırı wordy bash kodu ile:

#!/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

1
Değiştirdikten sonra benim için çalıştı app-build.gradleiçin %MY_APP_NAME%-build.gradle. Teşekkürler!
Alexander Zinchuk

3

maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }Hem üst seviyeye build.gradlehem de appmodüle eklemek zorunda kaldım build.gradle. İçine hem iki durumda da buildscripts.repositoriesve deallprojects.repositories


2

Yukarıdakilerin hiçbiri benim için çalışmadı. Sonunda google-services eklentisini kaldırarak ekledim.

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


Sorunu gerçekten çözen tek cevap bu. Eklentiyi kaldırmak ve eklemek build.gradle dosyasında düzeltilmesi gereken her şeyi düzeltir.
Felipe Ferri
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.