Error: Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25 in Ionic 3
Error: Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25 in Ionic 3
我在为 Android 构建 Ionic 3 应用程序时突然收到以下错误。
Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25
我们有一个来自 Android Studio here 的解决方案,但在我使用以下代码更改 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
}
还是一样的错误。
这是解决方案。
问题正是 maven 存储库 (here), but the issue was with the build.gradle from the cordova-support-google-services plugin, so I added the required line and everything is ok now, I've already created a pull request to the original repo (here)。但与此同时你可以做我做的,只需将 package.json 中的当前版本替换为我的 repo:
之前:
...
"cordova-support-google-services": "^1.3.1",
...
之后:
...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...
之后您将必须:
- 删除文件夹 platforms 和 plugins
- 运行
npm install
This is a temporal solution while the pull request to the main repo gets accepted and the npm package updated
就是这样,现在您可以再次构建您的项目了。
我正在使用 Ionic 4,一些插件需要 cordova-support-google-services
,如果您的 package.json 中没有它,则错误可能与其他插件有关,如果是这样,请添加package.json 这样我们就可以找出问题所在。
10 月 24 日更新:
我已经按照你们中的许多人的建议更改了我的 repo 中的解决方案,现在解决方案只是修复依赖关系:来自:com.android.tools.build:gradle:+ 到类路径 com.android.tools.build:gradle:3.+,如果你想看 what's changed[,这已经在我的仓库中了=17=]
编辑 2019 年 10 月 28 日:
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'
然后构建成功。
在我的项目中,我是这样修复的。(我在 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' }
}
}
问题出在 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:+'
这是一种极其脆弱的指定依赖关系的方式。这里的“+”号表示"fetch the most recent version available in the repo"。
如果在 repo 中发布了更新的版本,并且它破坏了构建,那么使用这个插件的每个人的项目都会被破坏。
这发生在今天。正在获取的损坏版本是 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。
同时,只需使用此插件的固定分支。
作为对来自@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:
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
ionic v3 和 cordova 的解决方案
@Mister Smith 解决了我的问题
您必须转到文件
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 :)
以上的 None 对我有用。我最终删除了 google-services 插件并添加了它。
cordova plugin rm cordova-support-google-services
cordova plugin add cordova-support-google-services
我不得不将 maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
添加到顶层 build.gradle
和 app
模块 build.gradle
中。
在这两种情况下都进入 buildscripts.repositories
和 allprojects.repositories
在我的例子中,我首先遇到了同样的错误,然后是一大堆其他包(org.ow2.asm:asm-analysis:4.0@jar, etc...)也无法解决.
问题是我将 Gradle 升级到 v5(以便能够支持新版本的 Crashlytic)。这样做,我将存储库升级到 Google(),并删除了旧的 Maven { url ... } 条目。
但是我也删除了jcenter(),很多节点仍然需要它。
现在我的存储库部分如下所示:
buildscript {
repositories {
maven { url "$rootDir/../node_modules/react-native/android" }
google() // Google Maven repository
jcenter()
}
//...
因此,如果其他人正在阅读本文但对当前接受的降级解决方案不满意 Gradle,请检查您是否有 jcenter()。
Ps.: 我意识到这是一个老问题,但我最近在 google.
上搜索时发现了它
我在为 Android 构建 Ionic 3 应用程序时突然收到以下错误。
Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25
我们有一个来自 Android Studio here 的解决方案,但在我使用以下代码更改 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
}
还是一样的错误。
这是解决方案。
问题正是 maven 存储库 (here), but the issue was with the build.gradle from the cordova-support-google-services plugin, so I added the required line and everything is ok now, I've already created a pull request to the original repo (here)。但与此同时你可以做我做的,只需将 package.json 中的当前版本替换为我的 repo:
之前:
...
"cordova-support-google-services": "^1.3.1",
...
之后:
...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...
之后您将必须:
- 删除文件夹 platforms 和 plugins
- 运行
npm install
This is a temporal solution while the pull request to the main repo gets accepted and the npm package updated
就是这样,现在您可以再次构建您的项目了。
我正在使用 Ionic 4,一些插件需要 cordova-support-google-services
,如果您的 package.json 中没有它,则错误可能与其他插件有关,如果是这样,请添加package.json 这样我们就可以找出问题所在。
10 月 24 日更新:
我已经按照你们中的许多人的建议更改了我的 repo 中的解决方案,现在解决方案只是修复依赖关系:来自:com.android.tools.build:gradle:+ 到类路径 com.android.tools.build:gradle:3.+,如果你想看 what's changed[,这已经在我的仓库中了=17=]
编辑 2019 年 10 月 28 日:
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'
然后构建成功。
在我的项目中,我是这样修复的。(我在 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' }
}
}
问题出在 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:+'
这是一种极其脆弱的指定依赖关系的方式。这里的“+”号表示"fetch the most recent version available in the repo"。
如果在 repo 中发布了更新的版本,并且它破坏了构建,那么使用这个插件的每个人的项目都会被破坏。
这发生在今天。正在获取的损坏版本是 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。 同时,只需使用此插件的固定分支。
作为对来自@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:
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
ionic v3 和 cordova 的解决方案
@Mister Smith 解决了我的问题
您必须转到文件
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 :)
None 对我有用。我最终删除了 google-services 插件并添加了它。
cordova plugin rm cordova-support-google-services
cordova plugin add cordova-support-google-services
我不得不将 maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
添加到顶层 build.gradle
和 app
模块 build.gradle
中。
在这两种情况下都进入 buildscripts.repositories
和 allprojects.repositories
在我的例子中,我首先遇到了同样的错误,然后是一大堆其他包(org.ow2.asm:asm-analysis:4.0@jar, etc...)也无法解决.
问题是我将 Gradle 升级到 v5(以便能够支持新版本的 Crashlytic)。这样做,我将存储库升级到 Google(),并删除了旧的 Maven { url ... } 条目。
但是我也删除了jcenter(),很多节点仍然需要它。
现在我的存储库部分如下所示:
buildscript {
repositories {
maven { url "$rootDir/../node_modules/react-native/android" }
google() // Google Maven repository
jcenter()
}
//...
因此,如果其他人正在阅读本文但对当前接受的降级解决方案不满意 Gradle,请检查您是否有 jcenter()。
Ps.: 我意识到这是一个老问题,但我最近在 google.
上搜索时发现了它