Android 용 Ionic 3 앱을 빌드하는 중에 갑자기 다음과 같은 오류가 발생합니다.
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' }
}
}
내 Cordova를 업데이트하고 위의 솔루션을 추가 한 후 build.gradle 파일은 다음과 같습니다.
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
}
여전히 같은 오류입니다.
답변
문제는 cordova-support-google-services
Cordova 의 플러그인에 있습니다.
이 플러그인 build.gradle
은 오늘 (2019 년 10 월 24 일) 다음과 같습니다.
dependencies {
classpath 'com.android.tools.build:gradle:+'
classpath 'com.google.gms:google-services:4.2.0'
}
더 정확하게 문제는이 의존성에 있습니다.
classpath 'com.android.tools.build:gradle:+'
그것은 의존성을 지정하는 매우 부서지기 쉬운 방법입니다. 여기서 ‘+’기호는 “리포지토리에서 사용 가능한 최신 버전을 가져옵니다”를 의미합니다. 최신 버전이 리포지토리에 게시되고 빌드가 중단되면이 플러그인을 가진 모든 사람이 프로젝트를 중단 한 것입니다. 이것은 오늘 일어났다. 가져온 버전이입니다 com.android.tools.build:gradle:4.0.0
. Kotlin이 필요합니다.
그렇기 때문에 프로젝트를 안정적으로 구축하려면 항상 종속성을 고정해야합니다. 새로운 것을 절대 믿지 마십시오. 이 의존성은 어제처럼 잘 컴파일됩니다.
classpath 'com.android.tools.build:gradle:3.5.1'
Cordova 또는 Ionic을 사용하는 경우 파일의 종속성을 동결하여 프로젝트를 빌드 할 수 있도록 빠른 수정을 할 수 있습니다.
<projectroot>/platforms/android/cordova-support-google-services/<project>-build.gradle
그러나 이것은 확실한 해결책이 아닙니다. Cordova를 통해 Android 플랫폼을 다시 설치하면 오류가 다시 나타납니다. 프로젝트 관리자는 의존성을 멈추거나 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()
에
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'
에
classpath 'com.google.gms:google-services:4.1.0'
그런 다음 성공적으로 구축되었습니다.
답변
해결책은 다음과 같습니다.
문제는 정확히 maven 저장소 ( here ) 였지만 문제는 cordova-support-google-services 플러그인 의 build.gradle 관련 문제 이므로 필요한 줄을 추가하고 모든 것이 정상입니다. 이미 풀을 만들었습니다. 원래 리포지토리에 요청 하십시오 ( here ). 그러나 그 동안 내가 한 일을 할 수 있습니다. package.json 에서 현재 버전을 내 저장소로 바꾸십시오 .
전에:
...
"cordova-support-google-services": "^1.3.1",
...
후:
...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...
그 후에는 다음을 수행해야합니다.
- 폴더 플랫폼 및 플러그인 제거
- 운영
npm install
기본 리포지토리에 대한 풀 요청이 수락되고 npm 패키지가 업데이트되는 동안 임시 솔루션입니다.
이제 끝났습니다. 이제 프로젝트를 다시 빌드 할 수 있습니다.
Ionic 4를 사용하고 있으며 cordova-support-google-services
package.json에없는 경우 일부 플러그인이 필요합니다 . 다른 플러그인에 오류가있을 수 있으므로 package.json을 추가하십시오. 문제.
24 / OCT 업데이트 :
에서 : 난 그냥 종속성 고정, 당신의 많은으로 내 REPO 이제 솔루션 consinst을 제안 된 해결 방법 변경했습니다 com.android.tools.build:gradle:+ 클래스 경로에 com.android.tools.build:gradle를 : 3. + , 변경된 내용을 보려면 이미 내 저장소에 있습니다.
답변
내 프로젝트에서 나는 이렇게 고쳤다. (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' }
}
}
답변
이온 v3 및 코르도바 솔루션
@ 미스터 스미스 솔루션은 내 문제를 해결
당신은 파일로 이동해야합니다
platforms/android/cordova-support-google-services
그때
바꾸다
classpath 'com.android.tools.build:gradle:+'
으로
classpath 'com.android.tools.build:gradle:3.5.1'
@ 내가 찾은 대체 솔루션은
setup kotlin in your system :)
답변
@MisterSmith 의 제안 에 대한 후속 임시 수정 사항으로 후크를 사용하여 잠금을 다시 적용하십시오.
<hook src="scripts/fix_android_dep.sh" type="after_platform_add"/>
이 과장된 bash 코드로 :
#!/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
답변
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
최상위 build.gradle
및 app
모듈 모두에 추가해야했습니다 build.gradle
. 에 모두 두 경우 모두 buildscripts.repositories
와의allprojects.repositories