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




cordova ionic-framework (5)

10/28/19 편집 :

cordova-support-google-services는 오늘 classpath 'com.android.tools.build:gradle:+' 에서 classpath 'com.android.tools.build:gradle:+' 경로를 변경하는 버전 1.3.2로 업데이트되었습니다.

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'

그런 다음 성공적으로 구축되었습니다.

Android 용 Ionic 3 앱을 빌드하는 중에 갑자기 다음과 같은 오류가 발생합니다.

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

우리는 here 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
}

여전히 같은 오류입니다.


@MisterSmith의 suggestion 에 대한 후속 임시 수정 사항으로 후크를 사용하여 잠금을 다시 적용하십시오.

<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://.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

문제는 Cordova 용 cordova-support-google-services 플러그인에 있습니다.

이 플러그인의 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을 지원하도록 수정해야합니다. 그동안이 플러그인의 고정 포크를 사용하십시오.


위의 어느 것도 나를 위해 일하지 않았습니다. google-services 플러그인을 제거하고 추가했습니다.

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


해결책은 다음과 같습니다.

문제는 정확히 maven 저장소 ( here ) 였지만 문제는 cordova-support-google-services 플러그인의 build.gradle 관련 문제이므로 필요한 줄을 추가하고 모든 것이 정상입니다. 이미 풀을 만들었습니다. 원래 리포지토리에 요청 here ( 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를 사용하고 있으며 package.json에없는 경우 일부 플러그인에는 cordova-support-google-services 가 필요합니다. 다른 플러그인에 오류가있을 수 있으므로 package.json을 추가하십시오. 어느 것이 문제인지 알아낼 수 있습니다.

24 / OCT 업데이트 :

많은 사람들이 제안한대로 내 리포지토리에서 솔루션을 변경했습니다. 이제 솔루션은 종속성을 수정하는 것만으로 구성됩니다 . 3. + , here 내용을 보려면 이미 내 저장소에 있습니다.







build.gradle