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
在我的项目中,我这样修复。(我在科特林的项目)
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 :)
问题出在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。 同时,只需使用此插件的固定分叉即可。