2016-08-17 4 views
0

У меня есть два проекта: библиотека и приложение. Я ранее загружал библиотеку в jCentre, а библиотека указана в качестве внешней зависимости приложения в файле build.gradle. Недавно я опубликовал новую версию библиотеки и обновил код версии зависимостей в файле build.gradle приложения, но когда я сделал это, Android Studio больше не могла найти какой-либо из классов из библиотеки.Android Studio не может найти классы после обновления версии зависимости

Чтобы протестировать библиотеку, я создал совершенно новый проект и добавил библиотеку в качестве зависимости. В этом случае Android Studio находит классы просто прекрасными. Я сравнивал каждую строку файлов build.gradle: они имеют одну и ту же минимальную и целевую версию SDK, у них одинаковая конфигурация proguard, они буквально идентичны. Эти проекты также используют ту же самую версию плагина android и ту же самую версию градиента.

Я также попытался полностью удалить приложение с моей машины и переустановил его из git. Это не решило проблему. Я пробовал все обычные шаги по очистке проекта и восстановлению проекта, удалению всех файлов сборки, недействительности кешей и т. Д.

Так может ли кто-нибудь сказать мне, почему Android Studio не может найти ни один из классов библиотеки после обновления зависимостей версия?

Вот файл gradle.build в новом тестовом проекте:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.1" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 24 
     versionCode 11 
     versionName "3.1.0" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:24.1.1' 
    compile 'com.matthew-tamlin:android-utilities:2.1.0' // this is library 
} 

Вот файл build.gradle в проекте приложения:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.1" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 24 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:24.1.1' 
    compile 'com.matthew-tamlin:android-utilities:2.1.0' // this is library 
} 

Вы можете видеть, что они практически идентичны, поэтому почему один проект может найти классы из библиотеки, а другой - нет?

ответ

0

Так что я никогда не обнаружил, почему это проблема, но я нашел обходное решение. Я создал новый проект в Android Studio и скопировал все каталоги src и build.gradle из существующего проекта. Я также скопировал скрытую папку git и все git игнорировать файлы. Я не копировал оболочку градиента, файл градиента или сгенерированные сборки. Я не знаю, почему это устранило проблему, это, должно быть, ошибка в gradle или Android Studio.

Смежные вопросы