2016-09-28 2 views
4

У меня есть Android проект, который в настоящее время не в состоянии построить:NoClassDefFoundError: ком/Android/строить/Gradle/внутренний/ToolingRegistryProvider

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 

Проект строительства в порядке со следующими зависимостями:

'com.android.tools.build:gradle:2.1.3' 
'com.android.tools.build:gradle-experimental:0.7.3' 

Сотрудник использовал обновления, предлагаемые AndroidStudio. Это изменило версии плагина для:

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

После этого обновления, проект успешно строит на своей машине развития (Windows 7) и на шахте (Ubuntu 16.04). Ошибка возникает на сервере Jenkins build (Ubuntu 16.04). Я установил доступные обновления для компонентов Android SDK на сервере сборки, но ошибка сохраняется.

A google search for "ToolingRegistryProvider" возвращается «Поиск не соответствует документам».

ответ

1

Проблема была решена путем удаления кеша модуля градиента на сервере сборки, а затем позволяет сборке повторно загружать все.

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

Добавление моего решения этой проблемы: я добавил jcenter() тэгу репозиториев верхнего уровня.

Мы используем сервер Nexus, на котором размещается большое количество библиотек, которые мы используем здесь на работе. Поэтому, когда он попытался обновить версию плагина gradle, он попытался сделать это с сервера Nexus, и по какой-то причине обновление вытащило правильную версию, но с некоторыми изменениями, в результате чего версия gradle и версия плагина gradle не синхронизировались , Таким образом, добавив jcenter(), плагин gradle был обновлен правильно, и эта ошибка исчезла.

0

Эта ошибка может исходить от не имея Google Maven Repository в качестве хранилища в файле build.gradle:

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 для получения дополнительной информации.