2016-09-28 7 views
4

I今構築に失敗しているAndroidのプロジェクトを持っている:NoClassDefFoundErrorが:COM /アンドロイド/構築/ Gradleの/内部/ ToolingRegistryProvider

'com.android.tools.build:gradle:2.1.3' 
'com.android.tools.build:gradle-experimental:0.7.3' 
:プロジェクトは以下の依存関係を持つ微構築された

FAILURE: Build failed with an exception. 

* Where: 
Build file 'build.gradle' line: 28 

* What went wrong: 
A problem occurred evaluating root project 'X'. 
> java.lang.NoClassDefFoundError: com/android/build/gradle/internal/ToolingRegistryProvider 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

同僚がAndroidStudioのアップデートを適用しました。 (Ubuntuの16.04)この更新後

'com.android.tools.build:gradle:2.2.0' 
'com.android.tools.build:gradle-experimental:0.8.0' 

、プロジェクトは彼の開発マシン する(Windows 7)にして地雷を正常にビルド:それはにプラグインのバージョンを変更しました。エラーはJenkinsビルド サーバー(Ubuntu 16.04)で発生します。ビルドサーバーでAndroid SDKコンポーネントに利用可能なアップデートをインストールしましたが、エラーは解決しません。

google search for "ToolingRegistryProvider"は「あなたの検索はドキュメントに一致しません」を返します。

答えて

1

この問題は、ビルドサーバーでgradleのモジュールキャッシュを削除し、ビルドですべてを再ダウンロードすることで解決しました。

rm -r ~/.gradle/caches/modules-2 
1

この問題に私の解決策の追加:私はトップレベルのリポジトリタグにjcenter()を追加しました。

ここでは私たちが仕事場で使っているライブラリの多くをホストするNexusサーバを使用します。だから、gradleプラグインのバージョンを更新しようとしたときに、Nexusサーバからやろうとしましたが、何らかの理由で更新が正しいバージョンを引っ張りましたが、いくつかの変更が加えられて、gradleバージョンとgradleプラグインのバージョンが同期していません。だからjcenter()を追加することで、gradleプラグインが正しく更新され、このエラーは消えました。

0

このエラーは、あなたのbuild.gradleファイル内のリポジトリとしてGoogleのMavenリポジトリを持っていないから来ることができます。

allprojects { 
    repositories { 
     google() 

     // If you're using a version of Gradle lower than 4.1, you must instead use: 
     // maven { 
     //  url 'https://maven.google.com' 
     // } 
     // An alternative URL is 'https://dl.google.com/dl/android/maven2/' 
    } 
} 

詳細についてはthis linkを参照してください。

関連する問題