Błąd: nie znaleziono konfiguracji o nazwie „default” w Android Studio

117

Używam biblioteki volley do wykonywania operacji sieciowych w systemie Android. Więc próbuję dodać tę bibliotekę do mojego projektu, który jest tworzony w Android Studio i systemie Gradle.

Dodałem bibliotekę volley do mojego projektu, ale kiedy synchronizuję się z Gradle, pojawia się komunikat o błędzie. Wypróbowałem wszystkie odpowiedzi, które tutaj widzę, ale nic nie działało.

Komunikat o błędzie : Nie znaleziono konfiguracji o nazwie „default” w Android Studio

Volley / build.gradle

apply plugin: 'android-library'

android {

    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    sourceSets {
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19
        }

        main {
            assets.srcDirs       = ['assets']
            res.srcDirs          = ['res']
            aidl.srcDirs         = ['src']
            resources.srcDirs    = ['src']
            renderscript.srcDirs = ['src']
            java.srcDirs         = ['src']
            manifest.srcFile 'AndroidManifest.xml'

        }
    }
}

app / build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile project(':library:volley')
}

root / build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.1'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

settings.gradle

include ':app'
include ':library:volley'
Nerw
źródło
Czy dodano folder biblioteki w prawidłowej lokalizacji, takiej jak nazwa projektu / biblioteka?
Ajay S
Dodałem katalog biblioteki w katalogu aplikacji
Bot
1
W moim przypadku brakuje jednego z moich plików konfiguracyjnych gradle, który nie jest poprawnie push.
Zar E Ahmer

Odpowiedzi:

68

Dodaj folder biblioteki do lokalizacji głównej projektu i skopiuj tam wszystkie pliki biblioteki. Dla ex YourProject / Library zsynchronizuj go i reszta wydaje mi się OK.

Ajay S
źródło
5
Może to również oznaczać, że w katalogach biblioteki brakuje pliku build.gradle lub plików .iml
WKS
7
@aleb aby uzyskać pełny komunikat o błędzie wystarczy uruchomić polecenie terminala: ./gradlew assembleDebug. Możesz to zrobić z poziomu Android Studiolub zewnętrznej aplikacji terminala.
11
Czy możesz zamieścić przykład i zdjęcia? dzięki, ponieważ metoda ta praca
Dosta
Dzięki kolego, to uratowało mi dzień Dziękuję <3
Gufran Khurshid
1
To sprawiło, że zdałem sobie sprawę, że brakowało mi moich modułów podrzędnych, co jest bardziej wyraźne w odpowiedzi @ ViliusK.
Ionoclast Brigham
96

Próbować:

git submodule init
git submodule update
ViliusK
źródło
1
To zdecydowanie działa w przypadku bibliotek dodanych jako moduł podrzędny, dzięki!
Arne,
@Vilius, z którego katalogu mam to uruchomić w terminalu? Próbowałem uruchomić go w katalogu mojego projektu, ale jest napisane Not a git repository (or any of the parent directories). Mam przykładową aplikację, którą próbowałem zaimportować, ale nie została skonfigurowana dla gradle, więc ją zapakowali. Zastanawiam się, czy to część problemu. W rzeczywistości nie mam nawet settings.gradlepliku. Tylko build.gradlei kilka innych.
Azurespot
2
Powinieneś uruchomić z katalogu głównego projektu. Powinien to być projekt z repozytorium git. Powinien to być projekt z podprojektami. Poszukaj w build.gradleaktach czegoś takiego jakcompile project(':libs:my-custom:library')
ViliusK
1
> Moduł podrzędny umożliwia przechowywanie innego repozytorium Git w podkatalogu repozytorium. Drugie repozytorium ma swoją własną historię, która nie koliduje z historią bieżącego repozytorium. Można to wykorzystać na przykład w przypadku zależności zewnętrznych, takich jak biblioteki innych firm. źródło
ViliusK
3
Jak moduł podrzędny git ma coś wspólnego z błędem kompilacji Gradle?
teddy
22

Jest to prawdopodobnie rzadki przypadek, ale dla mnie nie było biblioteki, która była zawarta w settings.gradle.

Np. Miałem: include ':libraries:Android-RateThisApp:library'w moim settings.gradle

ale folder Android-RateThisApp był pusty. Jak tylko sprawdziłem ten podmoduł, synchronizacja gradle powiodła się.

alexgophermix
źródło
Tak, prawdopodobnie musiałeś git submodule initi git submodule update. Jest to częsty przypadek podczas sprawdzania projektu z modułami podrzędnymi.
ViliusK
wcale nie rzadkie .... tak jest w przypadku mnie z tym rodzajem błędu ... NIEZWYKLE w tym czasie.
sirvon
Tak było w przypadku mnie! Zaktualizowano mapy
React
14

Jeśli chcesz używać tego samego folderu biblioteki dla kilku projektów, możesz odwołać się do niego w gradle do zewnętrznej lokalizacji, na przykład:

settings.gradle:

include 'app', ':volley'
project(':volley').projectDir = new File('../libraries/volley')

w Twojej aplikacji build.gradle

dependencies {
    ...
    compile project(':volley')
...}
Björn Kechel
źródło
To zadziałało, gdy miałem cały projekt jako podmoduł, ale chciałem tylko użyć modułu biblioteki tego projektu (i wykluczyć przykładową aplikację).
phreakhead
6

Również mam do czynienia z tym problemem, ale wykonuję następujące kroki: - 1) dodaję moduł (bibliotekę) do określonej nazwy folderu ThirdPartyLib

Aby rozwiązać ten problem, idę do settings.gradle, niż po prostu dodaję następującą: -

project (':'). projectDir = new File ('ThirdPartyLib /')

: - to nazwa modułu ...

sharma_kunal
źródło
3

Aby zdiagnozować ten błąd, szybko upuść do terminala lub użyj terminala wbudowanego w Android Studio (dostępnego na dolnym pasku stanu). Przejdź do głównego katalogu swojego PROJEKTU (gdzie settings.gradlesię znajduje).

1.) Sprawdź, czy settings.gradlezawiera podprojekt. Coś takiego. Zapewnia to, że kompilacja obejmująca wiele projektów wie o projekcie podrzędnym biblioteki.

include ':apps:App1', ':apps:App2', ':library:Lib1'

Gdzie tekst między dwukropkami to podkatalogi.

2.) Uruchom następujące polecenie gradle i sprawdź, czy Gradle może podać listę zadań dla biblioteki. Użyj tego samego kwalifikatora w settings.gradledefinicji. Spowoduje to ujawnienie problemów ze skryptem kompilacji biblioteki w izolacji.

./gradlew :library:Lib1:tasks --info

3.) Upewnij się, że dane wyjściowe z ostatniego kroku zawierały zadanie „assembleDefault”. Jeśli nie, upewnij się, że biblioteka zawiera wtyczkę Android Library build.gradle. Jak to na samej górze.

apply plugin: 'com.android.library'

Wiem, że odpowiedziano na pytanie pierwotnego autora, ale uważam, że odpowiedź ewoluowała w ciągu ostatniego roku i myślę, że jest wiele przyczyn błędu. Myślę, że ten przepływ rozwiązań powinien pomóc tym, którzy napotykają różne problemy.

PaulR
źródło
3

Sprawdź settings.gradleplik. Może brakować dołączonych modułów lub znajdować się w innym katalogu. Na przykład, z poniższym wierszem settings.gradle, common-libmoduł wyszukiwania gradle w katalogu projektu:

include ':common-lib'

Jeśli go brakuje, możesz znaleźć i skopiować ten moduł do swojego projektu lub wskazać jego ścieżkę w settings.gradlepliku:

include ':common-lib'
project(':common-lib').projectDir = new File('<path to your module i.e. C://Libraries/common-lib>') // 
Devrim
źródło
0

Dla mnie (zgodnie z niektórymi komentarzami, które widziałem), problem polegał na tym, że gradle nie mógł znaleźć pliku build.gradle dla zaimportowanej biblioteki. Ta konfiguracja jest prosta, ale komunikat o błędzie jest nieco tajemniczy. Na przykład korzystałem z projektu android-map-utils i musiałem uwzględnić go w moim settings.gradle, dołączając te 2 wiersze w ten sposób.

include ':android-map-utils'
project(':android-map-utils').projectDir = new File(settingsDir, '..\\..\\modules\\android-maps-utils-master\\library')

Ścieżka biblioteki jest zależna od pliku settings.gradle mojego projektu. Następnie po prostu odwołałem się do niego w moich zależnościach w pliku build.gradle mojej aplikacji w ten sposób

...

    dependencies {
    ....
        compile project(':android-map-utils')
    ....

    }

Zalecam importowanie jednego modułu na raz, kompilację i sprawdzenie.

angryITguy
źródło
0

Jeśli przypuśćmy, że zauważyłeś ten błąd po usunięciu niektórych modułów węzła, najlepiej nie powinno być biblioteki pod build.gradle (Moduł: aplikacja). Można go usunąć ręcznie i ponownie zsynchronizować projekt.

deva11
źródło
0

Miałem również ten sam problem, a problem polegał na tym, że w niektórych z poniższych plików brakowało bibliotek.

settings.gradle, app / build.gradle, package.json, MainApplication.java

Załóżmy, że biblioteka jest ikoną-natywnego-wektora-reakcji, to powinna być wymieniona w następujących plikach;

W pliku app / build.gradle w sekcji zależności dodaj:

kompiluj projekt (': React-native-vector-icons')

W pliku settings.gradle w folderze Android dodaj:

include ': react-native-vector-icons' project (': aware-native-vector-icons'). projectDir = new File (rootProject.projectDir, '../node_modules/react-native-vector-icons/android' )

W pliku MainApplication.java dodaj następujące informacje:

Zaimportuj zależność: import com.oblador.vectoricons.VectorIconsPackage;

a następnie dodaj: new VectorIconsPackage () w metodzie getPackages ().

gbhati
źródło
0

Usunięcie kilku natywnych zależności reagujących rozwiązało problem

Po usunięciu tych wierszy problem został rozwiązany. Ta linia jest tworzona przez link rnpm, ale jest błędem.

compile project(':react-native-gps')
compile project(':react-native-maps')
HimalayanCoder
źródło