CanaryチャネルでAndroid Studio 3.1にアップグレードしましたが、プロジェクトをビルドできなくなりました。このエラーが出力されます:
クラス「com.Android.builder.Version」をロードできません。この予期しないエラーの考えられる原因は次のとおりです。
- Gradleの依存関係キャッシュが破損している可能性があります(これはネットワーク接続のタイムアウト後に発生することがあります。)依存関係を再ダウンロードしてプロジェクトを同期します(ネットワークが必要です)
- Gradleビルドプロセス(デーモン)の状態が破損している可能性があります。すべてのGradleデーモンを停止すると、この問題が解決する場合があります。 Gradleビルドプロセスを停止する(再起動が必要)
プロジェクトが使用しているサードパーティのプラグインは、プロジェクト内の他のプラグインまたはプロジェクトがリクエストしたGradleのバージョンと互換性がない可能性があります。 Gradleプロセスが破損している場合は、IDEを閉じてから、すべてのJavaプロセスを強制終了することもできます。
私はすでにこれらの解決策の両方を試し、すべての~/.gradle/caches
ディレクトリですが、エラーが解決しません。
同様のエラーを探していたところ、Android Studioの古いバージョンにこの問題があり、Android toolsバージョンをアップグレードするための推奨される解決策があります。
私はすでに最後のものを持っていると思います:
classpath 'com.Android.tools.build:gradle:3.1.0-alpha01'
編集(2017年10月30日):
回答は、誰かが問題を抱えていないのに誰かが問題を抱えていることを示しています。この質問へのコメントで指摘されているように、これは互換性のないプラグインが原因である可能性があるため、プロジェクトで使用されているプラグインをここにリストします。
buildscript {
ext.kotlin_version = '1.1.51'
repositories {
jcenter()
google()
// maven {
// url 'https://maven.google.com'
// }
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.gradle:build-scan-plugin:1.10"
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.1'
classpath 'com.Android.tools.build:gradle:3.1.0-alpha01'
classpath 'com.google.gms:google-services:3.1.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Androidプラグインの新しいバージョンとのいくつかの非互換性のため、dexcountは現在タフに使用されていません。
同じ問題がありましたが、共通しているのはdexcountプラグインです。 2つのプラグインに互換性があるまで、この問題を無効にします。 dexcountバグレポート を参照してください。
「dexcount 0.8.2に更新すると問題が解決します」
どうやら、Android Toolsプラグインは以前のバージョンに戻ります:
classpath 'com.Android.tools.build:gradle:3.0.0'
しかし、IDEに更新したいかどうか尋ねます3.1.0-alpha1
そのため、これがバグなのか、それとも問題が他の場所にあるのか迷います。
他の誰かが別の説明を思いつくまで、私はこのソリューションをここに残します。
gradleのクラスパス行を変更しました(プロジェクト:プロジェクト名)。問題はなくなりました。
クラスパス 'com.Android.tools.build:gradle:3.1.2'
ビルドが機能しない理由はわかりませんが、 Android Studio 3.1 をクリーンインストールし、この設定を使用すると、いくつかのライブラリ(およびJava、kotlinと混合)を含む大規模なプロジェクトのコンパイルですべて正常に機能します。
buildscript {
ext {
gradle_version = "3.1.0-alpha01"
kotlin_version = "1.1.51"
}
repositories {
maven {
url 'https://maven.google.com'
}
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
jcenter()
google()
}
dependencies {
classpath "com.Android.tools.build:gradle:$gradle_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
maven {
url 'https://maven.google.com'
}
jcenter()
google()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "500"
}
}
}
そして私のアプリベースのgradle。
apply plugin: 'com.Android.application'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-Android-extensions'
Android {
...
}