Nagle pojawia się następujący błąd podczas tworzenia aplikacji Ionic 3 na Androida.
Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25
Mamy tutaj jedno rozwiązanie z Android Studio , ale po wprowadzeniu zmian w moim build.gradle z następującym kodem nadal pojawia się błąd.
buildscript {
repositories {
...
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
}
allprojects {
repositories {
...
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
}
Mój plik build.gradle wygląda tak po zaktualizowaniu Cordova i dodaniu powyższego rozwiązania.
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
}
Wciąż ten sam błąd.
android
cordova
ionic-framework
ionic3
build.gradle
Tapas Mukherjee
źródło
źródło
...
i usunąłeś inne repozytoria, które już tam były?gradle:3.0.1
się znajduje.Odpowiedzi:
Problem leży we
cordova-support-google-services
wtyczce do Cordova.Ta wtyczka
build.gradle
wygląda na dzień dzisiejszy (24 października 2019 r.):Dokładniej problem tkwi w tej zależności:
To niezwykle kruchy sposób określania zależności. Znak „+” oznacza tutaj „pobierz najnowszą wersję dostępną w repozytorium”. Jeśli w repozytorium opublikowana zostanie nowsza wersja, która zepsuje kompilację, wówczas wszyscy z tą wtyczką mają zepsute projekty. To się stało dzisiaj. Pobierana jest zepsuta wersja
com.android.tools.build:gradle:4.0.0
. Wymaga trochę rzeczy Kotlin.Dlatego musisz ZAWSZE zamrozić zależności, aby niezawodnie zbudować swój projekt. Nigdy nie ufaj nowszym rzeczom. Ta zależność dobrze się kompiluje, tak jak wczoraj:
Dla tych, którzy używają Cordova lub Ionic, możesz dokonać szybkiej poprawki, aby móc zbudować projekt, zamrażając zależność w pliku:
Nie jest to jednak ostateczne rozwiązanie. Jeśli ponownie zainstalujesz platformę Android za pośrednictwem Cordova, błąd pojawi się ponownie. Opiekun projektu powinien albo zawiesić zależność, albo naprawić ją, aby obsługiwała klasę 4.0.0. W międzyczasie skorzystaj ze stałego rozwidlenia tej wtyczki.
źródło
EDYCJA 10/28/19:
Cordova-support-google-services została dziś zaktualizowana do wersji 1.3.2, która zmienia ścieżkę klasy
classpath 'com.android.tools.build:gradle:+'
do
classpath 'com.android.tools.build:gradle:3.+'
co wydaje się naprawiać błąd kotlin
Oryginalna odpowiedź
Udało mi się zbudować mój, wykonując następujące czynności:
Edytowałem platformy-> android-> cordova-support-google-services-> myAppName-build.gradle
i zmienił się
maventCentral()
do
To rozwiązało błąd kotlin, wtedy dostałem inny błąd, który rozwiązałem przez zmianę
do
Następnie zbudowano pomyślnie.
źródło
cordova plugin rm cordova-support-google-services --force && cordova plugin add cordova-support-google-services
Oto rozwiązanie.
Problemem było dokładnie repozytorium maven ( tutaj ), ale problem dotyczył build.gradle z wtyczki cordova-support-google-services , więc dodałem wymaganą linię i wszystko jest w porządku, już utworzyłem pull wniosek do pierwotnego repozytorium ( tutaj ). Ale w międzyczasie możesz zrobić to, co zrobiłem, po prostu zastąp w pakiecie.json bieżącą wersję moim repozytorium:
Przed:
Po:
po tym będziesz musiał:
npm install
i to wszystko, teraz możesz ponownie zbudować swój projekt.
Korzystam z Ionic 4, a niektóre wtyczki wymagają
cordova-support-google-services
, w przypadku, gdy nie masz go w pakiecie.json, błąd może być związany z inną wtyczką, jeśli tak, dodaj pakiet.json, abyśmy mogli dowiedzieć się, która z nich jest problem.AKTUALIZACJA 24 / PAŹDZIERNIKA:
Zmieniłem rozwiązanie w moim repozytorium, jak sugerowało wielu z was, teraz rozwiązanie skupia się tylko na naprawie zależności: z: com.android.tools.build:gradle:+ na classpath com.android.tools.build:gradle: 3. + , to już jest w moim repozytorium, jeśli chcesz zobaczyć, co się zmieniło
źródło
w moim projekcie naprawiam tak. (mój projekt w kotlin)
źródło
Rozwiązanie dla Ionic v3 i Cordova
@Mister Smith rozwiązał mój problem
musisz przejść do pliku
następnie
Zastąpić
classpath 'com.android.tools.build:gradle:+'
przez
@ Alternatywne rozwiązanie, które znalazłem to
źródło
Jako kolejna tymczasowa poprawka w odpowiedzi na sugestię @MisterSmith, użyj haka, aby ponownie zastosować blokadę:
z tym zbyt trudnym kodem bashowym:
źródło
app-build.gradle
na%MY_APP_NAME%-build.gradle
. Dzięki!Musiałem dodać
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
zarówno do najwyższego poziomu, jakbuild.gradle
i doapp
modułubuild.gradle
. W obu przypadkach zarówno do, jakbuildscripts.repositories
i doallprojects.repositories
źródło
Żadne z powyższych nie działało dla mnie. W końcu usunąłem wtyczkę usług Google i dodałem ją.
cordova plugin rm cordova-support-google-services cordova plugin add cordova-support-google-services
źródło