'MyProject'루트 프로젝트에서 찾을 수없는 'Task'와 함께 Android Studio 빌드가 실패합니다.


89

랩톱을 변경하고 Android Studio 버전 0.8.2로 업데이트 한 후 프로젝트를 빌드하려고하면이 오류가 발생합니다.

실패 : 예외로 인해 빌드가 실패했습니다.

  • 문제 : 루트 프로젝트 'MyProject'에서 작업 ''을 (를) 찾을 수 없습니다.

  • 시도 : 사용 가능한 작업 목록을 얻으려면 gradle 작업을 실행하십시오. --stacktrace 옵션으로 실행하여 스택 추적을 가져옵니다. 더 많은 로그 출력을 얻으려면 --info 또는 --debug 옵션과 함께 실행하십시오.

빌드 실패

내 Gradle 파일은 다음과 같습니다.

최상위 설정 .gradle

include ':MyProject'

MyProject의 build.gradle :

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'
}

최상위 build.gradle이 비어 있습니다.


실행중인 정확한 명령은 무엇입니까?
Opal

난 그냥 청소를 시도하고 다시하고 @Opal
TomRichardson

음 .. 알았어. 어떤 명령을 실행합니까?
Opal

8
Android Studio를 닫았다가 다시 엽니 다. 그것은 나를 위해 일했습니다.
petter

2
이 많은 것 중에서 답을 선택하지 않았습니다. ??? 적어도 답변을 게시하면 다른 사람들에게도 도움이 될 것입니다.
kAmol

답변:


63

답변은 늦었지만 Google (작은 따옴표)에게는 어려운 일이며 무슨 일이 일어나고 있는지 분명하지 않습니다. 아직 댓글을 달거나 범위를 요청 (또는 링크 3 개 게시) 할 평판이 없기 때문에이 답변은 약간 지루할 수 있습니다.

빠른 답변을 위해 프로젝트에 여러 Gradle 플러그인이있을 수 있습니다.

Gradle 래퍼 및 플러그인 동기화

내 문제는 손상된 IML 파일로 시작하는 것 같습니다. Android Studio (프로젝트 닫기와 다시 열기 사이)는 IML이 없어졌고 (아닙니다) 모듈을 삭제해야한다고 불평하기 시작했습니다. 계속해서 AS 0.8.7 (카나리아 채널)로 업그레이드했고 OP 문제 (루트 프로젝트에서 찾을 수없는 태스크 '')에 갇혀있었습니다. 이것은 빌드를 완전히 차단했기 때문에 Gradle을 파헤쳐 야했습니다.

OSX에서의 수리 단계 (Windows에 맞게 조정하십시오) :

  1. Android Studio를 0.8.7로 업그레이드
    • 환경 설정 | 업데이트 | "Beta Channel"을 "Canary Channel"로 전환 한 다음 지금 확인을 수행합니다.
    • 이것을 건너 뛸 수 있습니다.
  2. Gradle 래퍼를 확인했습니다 (현재 1.12.2, 현재 2.0을 사용하지 마십시오).

    • 특정 버전이 필요하지 않다고 가정하면 지원되는 최신 배포판을 사용하십시오.

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

    • 이것은 Preferences | Android Studio에서 설정할 수 있습니다. Gradle (하지만 0.8.7은 '잘못된 위치'오류를 표시했습니다).

    • '래퍼'는 각 Android Studio 프로젝트에 대한 Gradle의 복사본입니다. 이를 통해 OS에 Gradle 2를, 프로젝트에 다른 버전을 사용할 수 있습니다. Android 개발자 문서에서 여기에 대해 설명합니다 .
    • 그런 다음 플러그인에 대한 build.gradle 파일을 조정합니다 . Gradle 플러그인 버전은 전체 프로젝트에 대해 배포 / 래퍼 버전과 호환되어야합니다. 도구 문서 (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements)가 약간 오래되었으므로 플러그인 버전을 너무 낮게 (예 : 0.8.0) 설정할 수 있습니다. Android Studio는 래퍼의 허용 범위와 함께 오류를 발생시킵니다.

예를 들어 build.gradle에 다음 플러그인이 있습니다.

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

다음과 같이 정확한 버전으로 전환 해 볼 수 있습니다.

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

(각 경우에서 변경하는 버전을 기록한 후) 프로젝트의 모든 build.gradle 파일이 동일한 플러그인 버전을 가져 오는지 확인합니다. "+"를 유지하면 (0.12.0, 0.12.1, 0.12.2 등), Google의 Volley 라이브러리 (원래 gradle : 0.8. +)와 기본 프로젝트 (원래 0.12. +) 고정 버전 : gradle : 0.12.2.

기타 수표

  1. 동일한 프로젝트에 두 개의 Android 애플리케이션 모듈이 없는지 확인하십시오.

    • 이는 최종 솔루션 (위의 다른 Gradle 버전)과 상호 작용할 수 있으며

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

    • 확인하려면 빌드 | Make Project는 어떤 응용 프로그램을 만들고 싶은지 묻는 창이 나타나지 않아야합니다.

  2. 캐시 무효화
    • 파일 | 캐시 무효화 / 다시 시작 (stackoverflow.com/a/19223269/513413)
  3. 2 단계가 작동하지 않으면 ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)를 삭제하십시오.
    • Android Studio 종료
    • $ rm -rf ~ / .gradle /
    • Android Studio를 시작한 다음 동기화 :
      • 도구 | 안드로이드 | 프로젝트를 Gradle 파일과 동기화
    • 포기하기 전에이 전체 시퀀스 (quit ... sync)를 몇 번 반복하십시오.
  4. 프로젝트 정리
    • 빌드 | 깨끗한 프로젝트

이걸 보면 ...

최근 빌드에서 끔찍한 실패 (예외 페이지)가 계속 표시되었지만 몇 초 내에 메시지가 지워지고 빌드가 성공했으며 앱이 배포되었습니다. 설명 할 수 없었고 앱이 작동했기 때문에 프로젝트에 두 개의 Gradle 플러그인이 있다는 사실을 알아 차리지 못했습니다. 그래서 저는 Gradle 플러그인이 서로 싸웠다 고 생각합니다. 하나는 충돌하고 다른 하나는 상태를 잃고 오류를보고했습니다.

시간이 있다면 1 시간짜리 동영상 'A Gentle Introduction to Gradle'(www.youtube.com/watch?v=OFUEb7pLLXw)이 Gradle 빌드 파일, 작업, 빌드 결정 등에 접근하는 데 정말 도움이되었습니다.

부인 성명

나는 다른 직업에서 일한 후 외국 OS 에서이 전체 스택을 배우고 있습니다. 동시에 압력을 받고 있습니다. 지난 몇 달 동안 저는 안드로이드가 가지고 있다고 생각하는 모든 벽에 부딪 혔습니다. 나는 꽤 자주 여기에 있었고 이것이 나의 첫 번째 게시물입니다. 나는 이것이 어려운 수정이라고 생각했기 때문에 내 답변의 질이 내가 그것을 얻는 데 어려움을 반영하는지 진심으로 사과드립니다.


멋진 대답, 사과 아무것도하고 YouTube 링크에 대한 감사
Sabuncu

감사합니다. "기타 수표"의 3 단계는 저에게 도움이되었습니다.$ rm -rf ~/.gradle/
String

24

가져온 프로젝트의 SDK 관리자에서 시스템 이미지 (프로젝트의 대상 Android 수준)를 다운로드합니다.

이 오류는 Android 프로젝트의 대상 SDK가 sdk 폴더에 설치되어 있지 않을 때 발생합니다.

예를 들어. 가져온 프로젝트의 대상 SDK 레벨은 android-19 일 수 있으며 sdk 폴더-> 시스템 이미지에는 android-21이 설치되어있을 수 있습니다. 그래서 당신은 sdk 관리자에서 android-19 시스템 이미지 및 기타 파일을 다운로드하거나 시스템 이미지가있는 경우 복사하여 붙여 넣을 수 있습니다.


1
이 문제가 해결되었습니다. AS에서 노란색 경고 'Gradle 프로젝트 동기화 실패'를 발견했습니다. 메시지 창을 보면 몇 번의 클릭으로 누락 된 대상 SDK를 설치하는 하이퍼 링크가 포함되어 있습니다.
Mr. Bungle 2015


9

최근에 한 Android Studio 프로젝트를 닫고 다른 Eclipse 프로젝트를 가져올 때 이런 일이 발생했습니다. 이전에 열린 프로젝트에서 일부 gradle 설정을 유지 한 다음 새 프로젝트에서 혼란스러워지는 Android Studio의 버그 인 것 같습니다.

솔루션은 매우 간단했습니다. 프로젝트를 다시 열기 전에 프로젝트를 닫고 Android Studio를 완전히 종료 한 다음 새 프로젝트를 가져 오거나 엽니 다. 그때부터 모든 것이 순조롭게 진행됩니다.


4

나를위한 간단한 수정은

  1. 빌드> 클린 프로젝트
  2. Android Studio 다시 시작

3

제 경우에는 File-> Project Structure-> Project에서 'Android Plugin 버전'과 동일한 'Gradle 버전'을 설정하면 문제가 해결되었습니다.


3

분명히이 오류에는 여러 가지 원인이 있습니다. 여기에 문제가 해결되었습니다.

다음과 같은 빌드 명령을 실행했습니다.

./gradlew :testapp: build

공간없이 실행하면 문제가 해결되었습니다.

./gradlew :testapp:build

3

한 Git 분기에서 다른 분기로 전환 한 다음 "Clean Project"를 실행하려고 할 때이 오류가 발생했습니다. 내가 사용하는 ack작업 이름을 검색하고, .iml 파일을 발견했다.

내 솔루션은 (메인 메뉴에서) Tools> Android> Sync Project with Gradle Files를 클릭하여 프로젝트의 .iml 파일다시 생성하는 것이 었습니다 . ( 이 답변 덕분에 .)


2

때로는 Android Studio의 두 창을 열고 컴파일을 시도 할 때이 문제가 발생할 수 있습니다. 저에게는 프로젝트에 포함되지 않고 다른 Android Studio 프로젝트간에 공유되는 백업 된 Google Cloud Endpoint 모듈을 컴파일 할 때 인스턴스가 두 번 이상 열려 있으면이 오류가 발생합니다. 그러나 다른 창을 닫으면 모든 것이 정상입니다. 때로는 Android Studio를 모두 다시 시작해야 할 수도 있습니다.


2

Android SDK 경로를 찾을 수 없기 때문에이 문제가 발생했습니다. local.properties파일이나 ANDROID_HOME환경 변수 가 누락되었습니다 .


좋은 사람, 여기도 마찬가지입니다. 추가 ANDROID_SDK 내 ~ / .bash_profile을하고 일
게리 O 'DONOGHUE

1

gradle 파일에 최신 값이 있는지 확인하십시오. 이 글을 쓰는 시점에서 :

  • buildToolsVersion "21.1.2"

  • 종속성 {classpath 'com.android.tools.build:gradle:1.1.0'}


1

동일한 문제에 대한 또 다른 해결책 :

마법사 (스튜디오 버전 1.3.2)를 사용하여 이클립스 프로젝트를 스튜디오로 가져올 때마다 이런 일이 발생했습니다.

우연히 발견 한 것은 Android 스튜디오를 종료 한 다음 스튜디오를 다시 시작하면 문제가 해결된다는 것입니다.

실망 스럽지만 이것이 누군가에게 도움이되기를 바랍니다.


1
  1. 명령 프롬프트 열기
  2. 그런 다음 명령 프롬프트를 통해 프로젝트 폴더로 이동하십시오.
  3. gradlew build를 입력 하고 실행합니다.

1

문제

나는 구체적으로 "[module_name]:prepareDebugUnitTestDependencies" task not found gradle 빌드를 실행할 때마다 오류가 발생했습니다. 내 Android Studio를 3.0.0으로 업데이트 한 후 이런 일이 발생했습니다.

조사

이전에 gradle 기반 컴파일러에 명령 줄 옵션을 추가했습니다. 파일-> 설정-> 빌드, 실행, 배포-> 컴파일러-> 명령 줄 옵션에서 찾을 수 있습니다. 있습니다. 특히 앞서 언급 한 작업을 포함하여 여러 작업을 제외했습니다. 이전 안정 버전 (당시 2.3)에서는 잘 작동했지만 이것이 빌드 실패의 원인 인 것 같습니다.

해결책

이것은 가능한 많은 솔루션 중 하나입니다. File-> Settings-> Build, Execution, Deployment-> Compiler-> Command-line Options 아래의 설정에 올바른 명령 줄 옵션이 지정되어 있고 이들 중 어느 것도이 문제를 일으키지 않는지 확인합니다.

제 경우에는이 작업 (및 관련되어있는 것으로 보이는 다른 작업)의 제외를 제거하고 관련없는 작업은 제외하고 작동했습니다!


0

루트 폴더의 경로를 설정하고 아래 명령을 실행 한 후

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial


0

.gradle폴더를 제거 / 이름 바꾸기 c:\users\Myuser\.gradle하고 Android Studio를 다시 시작하고 나를 위해 일했습니다.


0

분명히이 문제는 다양한 상황에서 Android Studio로 인해 발생했지만 그 이유는 기존 프로젝트 를 Android Studio로 가져올 때 빌드 오류 입니다.

제 경우에는 몇 가지 빌드 도구를 설치해야하는 기존 프로젝트를 가져 왔고 마침내 빌드 구성이 오류로 완료되었습니다. 이 경우 다음을 수행하십시오.

  1. 현재 프로젝트 닫기
  2. 파일> 새로 만들기> 프로젝트 가져 오기 (최근 열린 프로젝트를 사용하지 마십시오

    . ) 참고 : 이러한 종류의 오류가 프로젝트 가져 오기에서 발생했을 때 소스 코드에 발생하지 않았을 것입니다 .

0

제 경우에는 Android Studio의 컴파일 옵션이 "stacktrace"라는 문제를 만났습니다. stacktrace--stacktrace로 수정 하면 문제가 해결되었습니다.

여기에 이미지 설명 입력


0

이 문제를 해결했습니다 Android 폴더에 파일을 생성하기 만하면됩니다.

Android 폴더로 이동

local.properties 파일 만들기

그런 다음 local.properties 파일에 다음 코드를 추가하십시오.

MacBook을 사용하는 경우 sdk.dir = / Users / USERNAME / Library / android / sdk

Windows를 사용하는 경우 sdk.dir = C : \ Users \ USERNAME \ AppData \ Local \ Android \ sdk

Linux를 사용하는 경우 sdk.dir = / home / USERNAME / Android / sdk

시스템 USERNAME이 무엇인지 알고 싶다면 Mac whoami 명령을 사용하십시오.

그런 다음 react-native run-android 명령을 다시 실행하십시오.

감사 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.