[android] 오류 : Ionic 3에서 org.jetbrains.kotlin : kotlin-stdlib-jdk8 : 1.3.60-eap-25를 찾을 수 없습니다

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-servicesCordova 의 플러그인에 있습니다.

이 플러그인 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-servicespackage.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.gradleapp모듈 모두에 추가해야했습니다 build.gradle. 에 모두 두 경우 모두 buildscripts.repositories와의allprojects.repositories