web-dev-qa-db-ja.com

エラー:Ionic 3にorg.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25が見つかりませんでした

Ionic Android用の3つのアプリをビルドしているときに、次のエラーが突然表示されます。

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

Android Studio here )からの1つの解決策がありますが、次のコードで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
}

まだ同じエラー。

81
Tapas Mukherjee

問題は cordova-support-google-services Cordovaのプラグイン。

このプラグインの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

ただし、これは決定的な解決策ではありません。 AndroidプラットフォームをCordova経由で再インストールすると、エラーが再び表示されます。プロジェクトのメンテナーは、依存関係をフリーズするか、gradle 4.0.0をサポートするように修正する必要があります。当面は、固定フォークを使用してください。このプラグインの。

75
Mister Smith

編集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'
_

その後、正常にビルドされました。

30
DanielRead

これが解決策です。

問題はまさにmavenリポジトリ( ここ )でしたが、問題はcordova-support-googleのbuild.gradleにありました-servicesプラグインなので、必要な行を追加し、すべて問題なく動作しました。元のリポジトリへのプルリクエストを作成しました( こちら =)。しかし、その間、私がしたことを行うことができます。現在のバージョンをpackage.jsonで置き換えてください:

前:

...
"cordova-support-google-services": "^1.3.1",
...

後:

...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...

その後、次のことを行う必要があります。

  • フォルダーplatformsおよびpluginsを削除します
  • 実行npm install

これは一時的な解決策であり、メインリポジトリへのプルリクエストが受け入れられ、npmパッケージが更新されます

これで、プロジェクトを再度ビルドできます。


Ionic 4を使用しており、一部のプラグインではcordova-support-google-services、package.jsonに含まれていない場合、別のプラグインでエラーが発生している可能性があります。その場合は、package.jsonを追加して、どのプラグインが問題であるかを確認してください。


UPDATE 24/OCT:

私はあなたの多くが提案したように私のリポジトリのソリューションを変更しました、今のソリューションは依存関係を修正するだけで一貫しています:from:com.Android.tools.build:gradle:+からクラスパスcom.Android.tools.build:gradle:3.+へ、これは私のリポジトリに既にあります参照 変更内容

29
Luis Gonzalez

私のプロジェクトでは、このように修正します(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' }
   }
}
7
Ven Ren

ionic 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 :)
6
Sayed Mohd Ali

@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://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
5
Greg Haygood

追加しなければならなかったmaven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }両方をトップレベルにbuild.gradleappモジュールbuild.gradle。どちらの場合も、buildscripts.repositoriesおよびallprojects.repositories

上記のどれも私にとってはうまくいきませんでした。 google-servicesプラグインを削除して追加しました。

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

2