APK 파일이 디스크에 없습니다


224

Android Studio에서 디버그 응용 프로그램을 시도하면 다음과 같은 로그 출력이 나타납니다.

APK 파일 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk가 디스크에 없습니다.

Android Studio를 다시 시작했지만이 문제를 해결할 수 없습니다. 어떻게 해결할 수 있습니까? 감사합니다


9
어떻게 해결할 수 있습니까? apk를 컴파일
Tim

1
@ TimCastelijns 실제로 Android Studio가 디버그 응용 프로그램 만들기 작업을 deb 응용 프로그램 작업에 포함시킬 정도로 지능적이지 않은지 궁금합니다. 이를 위해 Gradle을 만들어야합니다.
Trilarion

1
@Trilarion 기본적으로 AS는 디버그 apk를 컴파일하는 gradle의 assembleDebug 작업을 실행합니다. 여기에 문제가있어 수동 컴파일이 필요합니다
Tim

2
Gradle Make-Aware를 추가하면이 문제가 해결되었습니다. stackoverflow.com/a/25871525/1712417
Iammesol

2
"Gradle Make-Aware"를 추가해보십시오 stackoverflow.com/questions/18256177/…
Andy Cheng

답변:


463

이 옵션을 클릭하여 오류를 해결하십시오.

실행 :보기> 도구 창> Gradle> [프로젝트]> 작업> 빌드> 빌드


6
프로젝트 디렉토리 이름의 특수 문자에서도이 오류가 발생합니다.
NP

50
이것은 전혀 효과가 없었습니다. 독자들에게 무엇을해야하는지 알려주기보다는 그들이 왜 작동해야하는지 설명하는 답변을 통해 나중에 그 오류를 이해 / 회피 / 해결할 수 있습니다.
person27

3
이것이 정확히 무엇을하고 왜이 문제가 발생했는지 설명 하시겠습니까?
Hamidreza Sahraei

btw "특수 문자"에는 숫자도 포함됩니다. 이것에 대해 말도 안되고 시간이 많이 낭비됩니다. facepalm :)
alexr101

5
이 버튼은 최신 버전의 Android Studio에는 존재하지 않지만 "그라들 파일과 프로젝트 동기화"옵션이라고 생각합니다.
nasch

208

Android Studio V 3.1로 업데이트 한 후이 문제가 발생하면 다음을 시도하십시오.

Android Studio 3.1로 업데이트했을 때 이와 동일한 문제에 직면했습니다. 내가 찾은 다른 모든 솔루션은 매번 청소하고 다시 작성해야하기 때문에 매우 수동적이었습니다. 그러나 Iman Marashi 의 대답 덕분에 나는 그것을 해결할 수있었습니다.

실행-> 구성 편집 ...으로 이동 하십시오.

실행 전 섹션에 "Gradle-aware Make"가 있는지 확인하십시오.

실행 / 디버그 구성

그것을 추가하려면 + 부호를 클릭하고 Gradle-aware Make를 선택 하면 팝업이 나타나고 텍스트 필드를 비워두고 OK and OK를 클릭하십시오 .


13
이것은 최신 3.1 업데이트에 대한 수정입니다. 나 에게이 문제의 첫 번째 증상은 APK가 코드 변경에 "응답하지 않음"이었습니다. 새로운 APK가 제대로 구축되지 않았다는 것이 이제 분명해졌습니다.
David Gay

이 대답은 나를 위해 해결할 수 있습니다. 3.1을 업데이트 하고이 오류가 발생합니다.
ZarNi Myo Sett

당신은 생명의 은인입니다.
Joel Libby

와! 당신은 이것에 대해 1000 표를받을 자격이 있습니다! 안 드 로이드 스튜디오 1000 다운 투표를받을 자격이!
1QuickQuestion

고마워, 이것은 정답입니다 그리고 받아 들여 져야합니다
Petar Marijanovic

68

필자의 경우 "Gradle 파일과 프로젝트 동기화"를 실행하면 도움이되었습니다. Andoid Studio를 다시 시작하거나 캐시를 지우지 않았습니다.


1
감사. 나도 도와 줘. Andoid Studio를 다시 시작하거나 캐시를 지우는 것도 도움이되지 않았습니다.
ivan.panasiuk

내 노멀 build.gradle과 별도의 파일에있는 이름 지정 스크립트를 변경 한 후 나에게 속임수가 있었으므로 Android Studio는 변경 사항을 자동으로 선택하지 않고 동기화하라는 메시지를 표시하지 않았습니다.
Magnus W

이것이 실제 답변입니다.
azizbekian

3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
Marlon

이 문제가 단위 테스트를 실행하려고했습니다. 장치가 단위 테스트를 실행하도록 요청했습니다.
Sergio

34

결론을 알고 싶다면 마지막 섹션으로 이동하십시오. 감사.

일반적으로 프로젝트를 빌드하지 못하면 몇 가지 일반적인 트릭을 시도해보십시오.

  • 빌드-> 프로젝트 정리
  • 빌드 변형 확인
  • 언급 한대로 Android Studio를 다시 시작하십시오.

그러나 Android Studio가 디스크에서 APK 파일을 찾을 수없는 경우 문제에 더 구체적으로 설명하십시오. 이는 Android Studio가 실제로 프로젝트를 성공적으로 빌드하고 APK도 생성했음을 의미하지만 어떤 이유로 든 Android Studio에서 파일을 찾을 수 없습니다.

이 경우 로그에 따라 인쇄 된 디렉토리를 확인하십시오. 도움이됩니다.

예를 들면 다음과 같습니다.

Android Studio 2.0 Preview (빌드 143.2443734)

  1. 특정 커밋에 대한 체크 아웃 (헤드에서 분리) : git checkout [commit_hash]
  2. 프로젝트 실행
  3. 안드로이드 스튜디오는 APK 파일 / Users / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apk 가 디스크에 존재하지 않음을 알려줍니다
  4. 디렉토리로 이동하면 실제로 이름이 지정된 파일이 있습니다. app-debug- ( HEAD.apk (추가 괄호)
  5. 운영 자식 분기

    * (1a2bfff에서 헤드 분리)

여기에서 볼 수 있습니다. gradle 빌드 스크립트의 실수로 인해 파일 이름이 잘못되었습니다.

위의 예는 동일한 문제를 유발할 수있는 하나의 시나리오이지만 귀하와 동일한 근본 원인 일 필요는 없습니다.

결과적으로, 차이를 찾기 위해 디렉토리확인하고 build.gradle 스크립트 를 확인하는 것이 좋습니다 (아래에서 apk 이름을 변경할 수 있습니다).

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }

2
내 문제는 APK 이름으로 앱 버전을 추가하고 있지만 앱 버전은 xyz 형식과 "."입니다. 네이밍에서 (도트) 오류가 발생했습니다. 그래서 다른 점이지만 :) APK 전에 하나 기억하지
DraganescuValentin

20

아포스트로피가 없거나 경로에 &없어야 합니다.


'&'는 내가 컴파일하지 못하게하는 것이 었습니다. 감사합니다 @ 림 가제
Marka A

19

이 있는지 확인 등급 인식 만들기 에서 실행 / 실행 전에 구성 >> 디버깅 섹션 :

이 이미지처럼


17

일반적으로 자식 분기를 전환 할 때 비슷한 문제가 발생했습니다. 나를 위해 Android Studio를 종료 rm -rfv ~/Library/Caches/AndroidStudio*하고 다시 시작하십시오 .Android Studio가 티켓입니다.


이 방법으로 비슷한 문제가 해결되었습니다. gradle 빌드에서 apk 파일의 이름을 변경하여 파일에 버전 번호를 추가하고 주요 활동을 디버그하려고 시도하면 잘못된 apk 파일 이름 (이전 버전 번호)을 실행하려고했습니다. 언제 시작했는지 확실하지 않지만 제대로 작동하지 않을 때까지 제대로 작동했습니다.
David

안드로이드 스튜디오 캐시는 매우 큰 문제입니다!
GeekHades

그것은. 방금 빌드 번호를 늘리면 apk 파일 이름이 변경되고 다시이 문제가 발생합니다.
David

13

Android Studio 3.1.1에서 파일 | Gradle 파일과 프로젝트 동기화

Android Studio 3에서 파일 | 동기화하십시오.

그런 다음 프로젝트를 다시 실행하십시오.


Studio v3.1.1에서 파일-> Gradle 파일과 프로젝트 동기화. 그리고 당신은 갈 수 있습니다
Napolean

그런 다음 망치에서 다음에 (icones와) 상단 도구 모음에 필드에 당신은 구성 드롭 다운에 다시 '응용 프로그램'을 반환해야 아이콘
CodeToLife

11

올해는 2018 년입니다. Android Studio 버전은 3.2.0 alpha3이며 여전히이 문제가 발생합니다. 위의 어느 것도 나를 위해 일하지 않았으므로 여기에 2 센트가 있습니다.

이 일이 발생할 때마다 명령 줄에서 apk를 생성합니다.

gradlew assembleDebug

최신 정보

폴더를 삭제하고 .AndroidStudio[version]모든 환경 설정 및 캐시를 잃어 버렸습니다 ... 문제를 해결하는 것 같습니다


1
그러나 이것은 하나의 빌드에서만 작동합니까? 추가로 변경하고 '재생'버튼을 누르면 이전 APK를 푸시하고 변경 사항을 다시 작성하지 않습니다. 그래서 성가신, 그들이 생각했다 태권도 연맹
behelit

7

필자의 경우 앱 파일 경로에 특수 문자를 사용하고있었습니다. Android Studio를 닫고 앱 파일 경로에서 ' 문자를 제거했습니다 . 프로젝트를 다시 열었을 때 모든 것이 잘 작동했습니다.


예, 이상적으로 Android Studio는 사용자가 파일 경로에 특수 문자를 사용하지 못하도록 충분히 똑똑해야합니다. 또는 더 나은 나는 좋은 프로그래밍 관행을 직접 따라야했다 :)
불멸의 코드

6

상단 창에서 빌드 옵션을 사용하여 APK를 빌드하고 APK 빌드를 해결했습니다. 이상한 일을 할 필요가 없습니다.


6

~ / .gradle / caches /를 제거하는 대신 사용자와 같은 유닉스 (Linux / MacOs X)의 경우 명령 행에서 다음을 수행하십시오.

$ cd path_to_you_project
$ touch build.gradle

그런 다음 Android Studio에 APK를 빌드하도록 요청하면 gradle 캐시 자체가 재설정됩니다.


5

내 문제는 APK에 버전 번호를 추가하고 있다는 것입니다. 버전 번호를 변경하고 Gradle을 다시 동기화하면 문제가 해결되었습니다.

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

gradle 자체에서 appendVersionNameVersionCode를 호출 했습니까?
Dhrupal



2

위의 모든 답변을 시도했지만 작동하지 않으면 "Instant Run"기능을 비활성화하십시오. 이것은 모든 시도 후에 나에게 도움이되었습니다.

파일-> 설정-> 빌드, 실행, 배포-> 즉시 실행-> 확인란 선택을 취소하십시오.


2

빌드를 정리 한 후에도 문제가 발생했습니다. 나에게 해결책은 방금 gradle을 동기화하고 나에게 효과적이었습니다.


2

제 경우에는 디버깅 구성이 유효하지 않다는 것이 문제였습니다. 테스트 방법 이름, 클래스 또는 패키지가 변경되지 않았어도 어떻게 든 되었다는 것입니다.

실행-> 구성 편집에서 구성을 삭제했습니다.

여기에 이미지 설명을 입력하십시오

Android Studio는 자동으로 새로운 스튜디오를 만듭니다.


그런 다음 File / Re-Import Gradle project를 클릭해야합니다. 삭제 된 실행 구성이 다시 생성됩니다.
Juan Ignacio Barisich

1

gradle 1.5와 동일한 문제에 직면했습니다.

빌드 파일을 정리해야했습니다.

빌드-> 프로젝트 정리

그리고 gradle 파일을 완전히 컴파일하고 동기화하도록 APK를 빌드하십시오.

빌드-> 빌드 APK

나는 왜 그것이 어떻게 또는 어떻게 일어 났는지 모른다.



1

나는 같은 문제가 있었다. 경로에 잘못된 이름이 있었기 때문입니다. 다음과 같은 경로에 특수 문자가 있습니다. C : \ User \ My App \ Projekte-Tablet & Handy "&"문자를 삭제했는데 제대로 작동했습니다.


1

내 문제는 파일 이름에 몇 분을 포함시키는 것이 었습니다. 생성 된 파일이 appname_debug_0.9.0.1_170214_2217.apk 일 때 appname_debug_0.9.0.1_170214_2216.apk를 찾았으므로 출력 파일 이름 코드 (다른 곳에서 가져 옴)가 두 가지 지점에서 명확하게 호출되었습니다 빌드에서.

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }

이 블록은 어디에서 왔습니까?
Nerius Jok

프로젝트를 처음 설정할 때와 다른 스택 교환 스레드에서 왔으며 (내가 무엇을하고 있는지 거의 알지 못했습니다. 아무것도 변경되지 않았습니다). Gradle 의이 부분이 몇 번 변경되었으므로 이제는 쓸모없는 코드 일 것입니다.
이안 스펜서

1

나에게 문제는 어떻게 든 APK를 찾을 수 없지만 APK가 존재한다는 것입니다.

The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

내가해야 할 일은 apk-copy 상대 경로를 마우스 오른쪽 버튼으로 클릭하고

adb install -r <paste of relative path>

그리고 APK가 설치되어 가고 좋았습니다. 이 문제는 OSX에서 나에게 발생했습니다.


1

2018 년 5 월 새로운 Android Studio 3.1로 해결되었습니다. .gradle, .idea를 삭제하고 앱 폴더 안에 디렉토리를 빌드하십시오. 그런 다음 다시 실행하면 오류가 표시되지 않습니다.


1

캐시 동기화, 정리, 재 구축 및 무효화 및 재시작

그들 중 누구도 나를 위해 일하지 않았습니다.

릴리스 폴더와 디버그 폴더에서 APK 및 output.json 파일을 삭제 한 다음 동기화, 정리 및 빌드를 시도했지만 정상적으로 작동했습니다.


0

build.gradle 파일을 작은 정보로 변경하고 "지금 동기화"를 클릭하십시오. 확인하십시오.



0

귀하의 경우 로그에 생성 된 경로에 있는지 확인하십시오.

/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

"outputs"폴더에는 "apk"폴더가 있습니다.

그것이 내 문제였습니다.없는 경우 아래 스크린 샷을 따라 gradle에서 "assembleRelease"작업을 실행해야합니다.

gradle assembleRelease 태스크를 실행하는 단계 그러면 폴더가 생성됩니다.


0

위의 어느 것도 도움이되지 않았지만 빌드 도구 패널에서 다른 맛으로 전환 한 다음 필요한 것으로 다시 전환하여이를 알아 냈습니다.


0

파일 build.gradle (app 디렉토리)을 수정하십시오. 실제로 : 동기화 팁을 얻으려면이 파일 만 변경하면 안되며 프로젝트를 동기화하십시오.

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