Kompilacja Android Studio kończy się niepowodzeniem, a „Zadanie” nie zostało znalezione w głównym projekcie „MyProject”. ”

89

Ten błąd pojawia się podczas próby zbudowania projektu po zmianie laptopa i aktualizacji do Android Studio w wersji 0.8.2.

BŁĄD: kompilacja nie powiodła się z wyjątkiem.

  • Co poszło nie tak: w głównym projekcie „MyProject” nie znaleziono zadania „”.

  • Spróbuj: uruchom zadania oceniania, aby uzyskać listę dostępnych zadań. Uruchom z opcją --stacktrace, aby uzyskać ślad stosu. Uruchom z opcją --info lub --debug, aby uzyskać więcej danych wyjściowych dziennika.

BUDOWA NIEUDANA

Oto moje pliki Gradle:

Ustawienia najwyższego poziomu.gradle

include ':MyProject'

build.gradle w MyProject:

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:0.12.+"
    }
}
repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion "20"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20
    }
}

dependencies {
    compile 'de.timroes.android:EnhancedListView:0.3.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'
}

Plik build.gradle najwyższego poziomu jest pusty

TomRichardson
źródło
Jakie dokładnie polecenie wykonujesz?
Opal
@Opal Próbuję tylko wyczyścić i odbudować
TomRichardson,
Cóż ... Ok. Jakie polecenie wykonujesz?
Opal
8
Spróbuj zamknąć i ponownie otworzyć Android Studio. U mnie to zadziałało.
petter
2
Żadna odpowiedź nie została wybrana spośród tych wielu ??? Przynajmniej opublikuj wtedy swoją odpowiedź, która pomoże też innym.
kAmol

Odpowiedzi:

63

Chociaż odpowiedź jest spóźniona, jest to trudne dla Google (pojedyncze cudzysłowy) i nie jest jasne, co się dzieje. Nie mam jeszcze reputacji, aby komentować lub pytać o zakres (lub publikować 3 linki), więc ta odpowiedź może być trochę uciążliwa.

Aby szybko odpowiedzieć, możesz mieć wiele wtyczek Gradle w swoim projekcie.

Synchronizuj Gradle Wrapper i wtyczki

Wydawało się, że mój problem zaczął się od uszkodzonego pliku IML. Android Studio (między zamknięciem a ponownym otwarciem projektu) zaczęło narzekać, że IML zniknął (nie było) i moduł powinien zostać usunięty, co odrzuciłem. Utrzymywało się, zaktualizowałem do AS 0.8.7 (kanał kanarek) i utknąłem w problemie z OP (zadanie „nie znaleziono w projekcie głównym). To całkowicie zablokowało kompilacje, więc musiałem zagłębić się w Gradle.

Moje kroki naprawy w systemie OSX (dostosuj do systemu Windows):

  1. Zaktualizuj Android Studio do 0.8.7
    • Preferencje | Aktualizacje | Przełącz „Kanał Beta” na „Kanał Canary”, a następnie zrób Sprawdź teraz.
    • Możesz to pominąć.
  2. Sprawdzono opakowanie Gradle (obecnie 1.12.2; nie próbuj teraz używać 2.0).

    • Zakładając, że nie potrzebujesz określonej wersji, użyj najnowszej obsługiwanej dystrybucji

      $ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip

    • Można to ustawić w Android Studio w Preferencjach | Gradle (ale 0.8.7 dawał mi błędy „nieprawidłowej lokalizacji”).

    • „Opakowanie” to po prostu kopia Gradle dla każdego projektu Android Studio. Pozwala mieć Gradle 2 w systemie operacyjnym i różne wersje w projektach. Dokumentacja Android Developer wyjaśnia to tutaj .
    • Następnie dostosuj pliki build.gradle dla wtyczki . Wersja wtyczki Gradle musi być kompatybilna z wersją dystrybucyjną / opakowującą dla całego projektu. Ponieważ dokumentacja narzędzi (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) jest nieco nieaktualna, można ustawić zbyt niską wersję wtyczki (np. 0.8.0) i Android Studio zgłosi błąd z dopuszczalnym zakresem opakowania.

Na przykład w build.gradle masz tę wtyczkę:

dependencies {
    classpath "com.android.tools.build:gradle:0.12.+"
}

Możesz spróbować przełączyć go na dokładną wersję, na przykład:

dependencies {
    classpath "com.android.tools.build:gradle:0.12.2"
}

i (po zarejestrowaniu wersji, z której się zmieniasz w każdym przypadku), sprawdzenie, czy każdy plik build.gradle w twoim projekcie pobiera tę samą wersję wtyczki. Utrzymanie „+” powinno działać (dla 0.12.0, 0.12.1, 0.12.2 itd.), Ale moja kompilacja się powiodła, kiedy zaktualizowałem bibliotekę Google Volley (pierwotnie gradle: 0.8. +) I mój główny projekt (pierwotnie 0.12. +) do wersji poprawionej: gradle: 0.12.2.

Inne kontrole

  1. Upewnij się, że nie masz dwóch modułów aplikacji systemu Android w tym samym projekcie

    • Może to współdziałać z ostatecznym rozwiązaniem (różne wersje Gradle powyżej) i przyczyną

      UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)

    • Aby sprawdzić, buduj | Make Project nie powinno wyskakiwać okienka z pytaniem, jaką aplikację chcesz stworzyć.

  2. Unieważnij swoje skrytki
    • Plik | Unieważnij pamięci podręczne / uruchom ponownie (stackoverflow.com/a/19223269/513413)
  3. Jeśli krok 2 nie działa, usuń ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • Zamknij Android Studio
    • $ rm -rf ~ / .gradle /
    • Uruchom Android Studio, a następnie zsynchronizuj:
      • Narzędzia | Android | Synchronizuj projekt z plikami Gradle
    • Powtórz tę całą sekwencję (zakończ ... synchronizację) kilka razy, zanim się poddasz.
  4. Wyczyść projekt
    • Zbuduj | Czysty projekt

Jeśli to zobaczysz ...

W moich ostatnich kompilacjach wciąż widziałem okropne awarie (strony wyjątków), ale w ciągu kilku sekund komunikaty zostały wyczyszczone, kompilacja powiodła się i aplikacja została wdrożona. Ponieważ nigdy nie mogłem tego wyjaśnić, a aplikacja działała, nigdy nie zauważyłem, że mam w projekcie dwie wtyczki Gradle. Więc myślę, że wtyczki Gradle walczyły ze sobą; jeden uległ awarii, drugi stracił stan i zgłosił błąd.

Jeśli masz czas, 1-godzinne wideo „A Gentle Introduction to Gradle” (www.youtube.com/watch?v=OFUEb7pLLXw) naprawdę pomogło mi podejść do plików kompilacji Gradle, zadań, decyzji dotyczących kompilacji itp.

Zrzeczenie się

Uczę się tego całego stosu, na obcym systemie operacyjnym, po przepracowaniu innej kariery ... wszystko w tym samym czasie i pod presją. W ciągu ostatnich kilku miesięcy trafiłem na każdą ścianę, którą moim zdaniem ma Android; Byłem tu dość często i to jest mój pierwszy wpis. Pomyślałem, że to trudne rozwiązanie, więc szczerze przepraszam, jeśli jakość mojej odpowiedzi odzwierciedla trudność, jaką miałem w dotarciu do niej.

ǝɲǝɲbρɯͽ
źródło
Świetna odpowiedź, nie ma za co przepraszać i dziękuję za link do YouTube
Sabuncu
Dzięki za to. Krok 3 w „Other Checks” był tym, co zrobił dla mnie:$ rm -rf ~/.gradle/
String
24

Pobierz obraz systemu (docelowego poziomu Androida projektu) z menedżera SDK dla zaimportowanego projektu.

Ten błąd pojawia się, gdy nie masz docelowego zestawu SDK projektu systemu Android zainstalowanego w folderze sdk

np. Docelowym poziomem sdk zaimportowanego projektu może być android-19, aw folderze sdk-> obrazy-systemu możesz mieć zainstalowany system Android-21. więc musisz pobrać obraz systemu android-19 i inne pliki z menedżera sdk lub możesz go skopiować wklej, jeśli masz obraz systemu.

Ankit Bansal
źródło
1
To naprawiło problem - zauważyłem również żółte ostrzeżenie „Synchronizacja projektu Gradle nie powiodła się” w AS, kiedy spojrzałem w okno Wiadomości, zawierało hiperłącze do zainstalowania brakującego docelowego SDK za pomocą kilku kliknięć.
Mr. Bungle,
13

Usunąć:

<facet type="android" name="Android">
    <configuration />
</facet>

w swoim pliku iml. To działa dla mnie.

https://plus.google.com/+AlexRuiz/posts/49hP3V9GSGe

toni
źródło
To nie dotyczy projektu Gradle, prawda? Mój projekt.xml zawiera<facet type="java-gradle" name="Java-Gradle">...
Trinimon
9

Zdarzyło mi się to niedawno, kiedy zamknąłem jeden projekt Android Studio i zaimportowałem inny projekt Eclipse. Wydawało się, że to jakiś błąd w Android Studio, w którym zachowuje niektóre ustawienia gradacji z wcześniej otwartego projektu, a następnie gubi się w nowym projekcie.

Rozwiązanie było niezwykle proste: zamknij projekt i całkowicie zamknij Android Studio, przed ponownym otwarciem, a następnie zaimportuj / otwórz nowy projekt. Od tego momentu wszystko idzie gładko.

rehan
źródło
4

Prosta poprawka dla mnie była

  1. Kompiluj> Wyczyść projekt
  2. Uruchom ponownie Android Studio
holangun
źródło
3

W moim przypadku ustawienie „wersji Gradle” tak samo jak „Wersja wtyczki Androida” w menu Plik-> Struktura projektu-> Projekt rozwiązało problem.

somesh
źródło
3

Najwyraźniej ten błąd ma wiele przyczyn. Oto, co naprawiło to dla mnie.

Uruchomiłem polecenie kompilacji w ten sposób:

./gradlew :testapp: build

Uruchomienie go bez miejsca rozwiązało problem:

./gradlew :testapp:build
David
źródło
3

Wystąpił ten błąd podczas przełączania się z jednej gałęzi Git na inną, a następnie próbując uruchomić „Wyczyść projekt”. użyłemack nazwy zadania i znalazłem ją w pliku .iml.

Moim rozwiązaniem było ponowne wygenerowanie pliku .iml projektu, klikając (w menu głównym) Narzędzia> Android> Synchronizuj projekt z plikami Gradle. ( Dzięki tej odpowiedzi .)

Josh
źródło
2

Czasami, jeśli otworzyłeś dwa okna Android Studio i podczas próby kompilacji, ten problem może się zdarzyć. Dla mnie, kiedy kompilowałem wspierany moduł Google Cloud Endpoint, który nie był osadzony w projekcie, a raczej współdzielony między różnymi projektami Android Studio, i gdy jest więcej niż raz otwarta instancja, ten błąd pojawia się dla mnie. Ale jak tylko zamkniesz inne okna, wszystko będzie dobrze. Czasami może być konieczne całkowite ponowne uruchomienie Android Studio.

Mohammed Mukhtar
źródło
2

Mam ten problem, ponieważ nie mógł znaleźć ścieżki Android SDK. Brakowało mi local.propertiespliku z nim lub ANDROID_HOMEzmiennej środowiskowej z nim.

Morten Holmgaard
źródło
dobry człowieku, to samo tutaj. Dodano ANDROID_SDK do mojego ~ / .bash_profile i zadziałało
Gary O 'Donoghue
1

Upewnij się, że masz najnowsze wartości w plikach gradle. W chwili pisania tego tekstu:

  • buildToolsVersion "21.1.2"

  • zależności {classpath 'com.android.tools.build:gradle:1.1.0'}

IgorGanapolsky
źródło
1

Jeszcze inne rozwiązanie tego samego problemu:

Zdarzało mi się to za każdym razem, gdy importowałem projekt zaćmienia do studia za pomocą kreatora (wersja studio 1.3.2).

Przypadkowo odkryłem, że opuszczenie studia Android i ponowne jego ponowne uruchomienie spowodowało, że problem zniknął.

Frustrujące, ale mam nadzieję, że to komuś pomoże ...

Mick
źródło
1
  1. Otwórz wiersz polecenia
  2. następnie przejdź do folderu projektu przez wiersz polecenia
  3. Wpisz gradlew build and run
Krishan
źródło
1

Problem

W szczególności otrzymałem "[module_name]:prepareDebugUnitTestDependencies" task not foundbłąd za każdym razem, gdy uruchomiłem kompilację Gradle. Zdarzyło mi się to po zaktualizowaniu mojego Android Studio do 3.0.0.

Dochodzenie

Wcześniej dodałem opcje wiersza poleceń do kompilatora opartego na gradle, które można znaleźć w: Plik -> Ustawienia -> Kompilacja, wykonanie, Wdrożenie -> Kompilator -> Opcje wiersza poleceń . W szczególności wykluczyłem szereg zadań, w tym wyżej wymienione zadanie. Chociaż działało to dobrze w poprzedniej stabilnej wersji (wówczas 2.3), wydaje się, że to było przyczyną niepowodzenia kompilacji.

Rozwiązanie

To jedno z wielu możliwych rozwiązań. Upewnij się, że masz poprawne opcje wiersza polecenia określone w ustawieniach w: Plik -> Ustawienia -> Kompilacja, wykonanie, wdrażanie -> Kompilator -> Opcje wiersza polecenia i że żadna z nich nie powoduje tego problemu.

W moim przypadku usunąłem wykluczenie tego zadania (i innych zadań, które wydawały się powiązane), pozostawiłem wykluczone niepowiązane zadania i zadziałało!

As
źródło
0

Ustaw ścieżkę do folderu głównego i po uruchomieniu poniższego polecenia

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
Maha
źródło
0

To właśnie zrobiłem

  1. Usuń folder .idea

    $ mv .idea .idea.bak

  2. Zaimportuj projekt ponownie

Ken Ratanachai S.
źródło
0

Usuwam / zmieniam nazwę .gradlefolderu c:\users\Myuser\.gradlei ponownie uruchamiam Android Studio i działało dla mnie

ashkufaraz
źródło
0

Najwyraźniej ten problem jest spowodowany przez Android Studio w różnych sytuacjach, ale przyczyną jest błąd kompilacji podczas importowania istniejącego projektu do studia Android.

W moim przypadku zaimportowałem mój istniejący projekt, w którym miałem zainstalować kilka narzędzi do kompilacji, a ostatecznie konfiguracja kompilacji została wykonana z błędem. W takim przypadku wykonaj następujące czynności

  1. Zamknij bieżący projekt
  2. Plik> Nowy> Importuj projekt (nie używaj otwartego ostatniego projektu)

    Uwaga: jestem pewien, że ten rodzaj błędu nie występuje w kodzie źródłowym, gdy stało się to w przypadku importu projektu .
Deva
źródło
0

W moim przypadku napotykam ten problem, że opcje kompilacji w Android Studio to „stacktrace”. Zmodyfikuj stacktrace na --stacktrace , problem rozwiązany.

wprowadź opis obrazu tutaj

timyau
źródło
0

Rozwiązałem ten problem, wystarczy utworzyć plik w folderze Androida

Przejdź do folderu Androida

Utwórz plik local.properties

następnie po prostu dodaj ten kod w pliku local.properties: -

Jeśli używasz MacBooka, sdk.dir = / Users / NAZWA UŻYTKOWNIKA / Library / android / sdk

jeśli używasz systemu Windows, sdk.dir = C: \ Users \ NAZWA UŻYTKOWNIKA \ AppData \ Local \ Android \ sdk

jeśli używasz Linuksa, sdk.dir = / home / NAZWA UŻYTKOWNIKA / Android / sdk

jeśli chcesz wiedzieć, jaka jest Twoja nazwa użytkownika systemu, po prostu użyj polecenia dla Mac whoami

a następnie po prostu uruchom ponownie polecenie reaguj-natywne run-android

Dzięki :)

Programista Usman
źródło