1. ホーム
  2. kotlin

[解決済み] Android Studioでビルドする際のエラー「Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7... 」を解決するには?

2023-05-20 19:45:34

質問

Android Studio 3 で "include kotlin" にチェックを入れて新しいプロジェクトを作成したところ、コンパイル中にエラーが発生しました。

"Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7..."

すべてのプラグインが最新であること、Android SDK が適切にインストールされていることを確認しました。

このエラーを解決するにはどうしたらよいでしょうか。

どのように解決するのですか?

kotlin-stdlib-jre[7/8] はしばらく前に非推奨となり、その後削除されました。非推奨の注記が残っていたのは 1.2.71 まで維持されていました。公式の非推奨の告知は ここで . 非推奨のバージョン(削除される前)を使用すると、(少なくとも)Android StudioとIntelliJで警告が発生するはずです。

使用方法 kotlin-stdlib-jdk7 を使うようにしましょう。と同じ依存関係です。 kotlin-stdlib-jre7 と同じ依存関係ですが (新しいものを除く)、名前が変更され kotlin-stdlib-jdk . kotlin-stdlib-jre は別の依存関係として維持されなくなりました。

IntelliJ と Android Studio の両方が、現在、新しいプロジェクトを kotlin-stdlib-jre7 ; これはおそらくバグです。 . 彼らはおそらくプロジェクトジェネレータを更新していないのでしょう。したがって、彼らがこれを修正するまで、あなたは手動で依存関係を動作するものに置き換える必要があります。これはKotlinプラグインに依存しています。もしアップデートしていないなら、アップデートしてください。 パッチが適用されているかどうかは確認していません。もしパッチが適用されていれば、新しいプロジェクトの作成だけが修正されます。古いバージョンから更新する場合、残りの回答はまだ適用されます。

1.2.71 以下を使用していて、1.3.0 以降にアップグレードする場合は、当然これを実行する必要があります。

これらはKotlin 1.3.0での新しい有効な依存関係です。

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

ここで $kotlinVersion は、バージョンを含む変数か、ハードコードされたバージョン(つまり 1.3.0 )


別の方法として を使うこともできます。 ( kotlin-stdlib ) の代わりに、JDK 固有のバージョンを使用します。しかし、どちらにしても依存関係を変更しなければならないので、 私は kotlin-stdlib-jdk7 を使うか、Java 8を使う予定があるなら kotlin-stdlib-jdk8

依存関係の最新バージョンは、以下の場所にもあります。 はこちら jdk7、jdk8、そしてバージョンに依存しないstdlibはすべて同じバージョンです(この編集の時点では - 将来的に変更される可能性がありますが、その前に通知があるはずです)。

他のビルドシステムに関する注意

同じ実際の解決策は他のビルドシステムにも当てはまりますが、コードは異なります。多くのビルドシステムがあるので、そのすべてを含めるつもりはありませんが、ポイントは、アーティファクトを kotlin-stdlib-jre[num] から kotlin-stdlib-jdk[num] (に変更します(もちろんブラケットなし)。あるいは、前述したように kotlin-stdlib .

ビルドシステムとは無関係に、これはMaven Centralおよび類似のリポジトリへのアクセスに基づいています。ビルドシステムがこれをサポートしない場合、および/または、Mavenスタイルの規約とリポジトリが壊れている場合は、ビルドシステムで動作するものを見つけなければなりません。

TL;DR:

使用方法 org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version または org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version (最初に使用したバージョンによる) に変更します。