web-dev-qa-db-ja.com

Android St​​udioでビルドするときのエラー「解決に失敗しました:org.jetbrains.kotlin:kotlin-stdlib-jre7 ...」を解決する方法

Android St​​udio 3の[kotlinを含める]チェックボックスをオンにして新しいプロジェクトを作成しましたが、デフォルトではコンパイル中にエラーが発生します

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

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

誰でもこのエラーを解決する方法を知っていますか?

49
Google

kotlin-stdlib-jre[7/8]はしばらく前に廃止され、その後削除されました。非推奨ノートは 1.2.71 まで保持されました。これは、これらのアーティファクトをリリースする最後のバージョンでした。公式の廃止通知は here にあります。 (少なくとも)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)です。


または、JDK固有のバージョンの代わりに 「プレーン」stdlibkotlin-stdlib)を使用できます。ただし、いずれかの方法で依存関係を変更する必要があるため、kotlin-stdlib-jdk7を使用するか、Java 8を使用する場合はkotlin-stdlib-jdk8をお勧めします

依存関係の最新バージョンも見つけることができます here 。 jdk7、jdk8、およびバージョン非固有のstdlibはすべて同じバージョンに従います(この編集によると、これは将来変更される可能性がありますが、変更が発生する前に通知される可能性があります)。したがって、jdk8、jdk7または通常のバージョンでは、すべてのバージョンが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(最初に使用したバージョンに応じて)を使用してください。

109
Zoe

Build.gradleから次の行を削除します。

implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

Build.gradleに次の行を追加します。

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

プロジェクトレベルでバージョンbuild.gradleを更新します:kotlin version = '1.3.0'

15
Soumen Das

build.gradleModule:app)置換

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

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

およびbuild.gradleModule:project)バージョンを変更

ext.kotlin_version = '1.3.0'
0
NIRMAL KUMAR
0
Nezneika