android - 錯誤:在Ionic 3中找不到org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25




cordova ionic-framework (5)

在為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
}

還是一樣的錯誤。


編輯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'

然後,它成功構建。


以上都不對我有用。 我最終刪除了google-services插件並添加了它。

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


問題出在Cordova的 cordova-support-google-services 插件上。

截至今天(2019年10月24日),此插件的 build.gradle 如下所示:

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。 同時,只需使用此插件的固定分叉即可。


在我的項目中,我這樣修復。(我在科特林的項目)

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和Cordova的解決方案

@史密斯先生解決方案解決了我的問題

你必須去文件

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 :)