원인 : buildOutput.apkData가 널이 아니어야합니다.


245

Kotlin을 사용하는 안드로이드 응용 프로그램이 휴대폰의 에뮬레이터에서 '앱'을 실행하려고하면이 예외가 발생합니다. 프로젝트를 빌드하면 오류없이 잘 실행됩니다.

나는 사용하고있다 :

  • SDK 28 (Android 9.0 (Pie))
  • 그레들 5.1.1
  • 그레들 플러그인 3.5.0-alpha03
  • 코 틀린 1.3.10
  • 자바 1.8.0_151
  • OSX 10.13.2
    org.gradle.internal.exceptions.LocationAwareException: buildOutput.apkData must not be null
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
        ...
    Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:103)
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:67)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:174)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:691)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:721)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:712)
        ...


3
Android Studio를 3.4로 업데이트 한 후에도 마찬가지입니다.
Andrew

2
나에게 맞는 Lemberg의 답변을 확인하십시오. 오늘 그 문제에 직면했습니다.
Nicky

Android Studio 3.5를 설치 한 후 Java (필요하지 않은 Kotlin)와 동일합니다.
Patapoom

답변:


311

클릭 Build->Clean Project

그런 다음 Build->Make Project

gradle 3.5.0-alpha3, -alpha5 및 3.4.0 (프로젝트 gradle)에서 테스트되었습니다.

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'

1
나는 이것이 com.android.tools.build:gradle:3.5.0-alpha05( AS에서 Build-> Rebuild Project로) 버전에서도 잘 작동하는지 확인할 수있다
kikoso

1
안타깝게도 Android Studio 3.5로 업그레이드해야하므로 팀에 Android Studio 업데이트를 위해 불안정한 채널로 전환하도록 지시 할 수 없습니다.
void.pointer

8
Android Studio 3.4에서 작동
Rafael

6
Gradle을 버전을 사용하는 맥 OS, 업데이트 된 모든 SDK에 AndroidStudio3.5에 노력하고 com.android.tools.build:gradle:3.5.0,이 솔루션은 나를 위해 작동하지 않습니다
Mihodi 루산

1
시도해보십시오. 예,이 오류가 발생합니다. @MartinPfeffer
Mihodi Lushan

151

Android Studio 3.5업데이트 용 (APK 서명 문제)

1 단계 : 대상 폴더 위치를 수정하여이 문제를 해결했습니다 .

전에

c:\user\folder\project\app

c:\user\folder\project\apk


Android Studio 3.4업데이트 용

1 단계 : Android Studio 3.4 를 업데이트 한 후 앱 수준에서 모듈 또는 라이브러리에 사용 된 모든 종속성을 추가해야합니다 build.gradle.

2 단계 : 프로젝트 정리 (빌드> 프로젝트 정리)

3 단계 : 프로젝트 재 구축 (빌드> 프로젝트 재 구축)

이제 프로젝트가 완벽하게 컴파일됩니다.


1
그게 뭐야? 정확히 어떻게해야합니까? > 1 단계 : Android Studio 3.4를 업데이트 한 후 앱 수준 build.gradle의 모듈 또는 라이브러리에 사용 된 모든 종속성을 추가해야합니다.
babay

1
@babay 글라이드 라이브러리를 사용하는 라이브러리를 사용한다고 가정합니다. 그런 다음 App level build.gradle에 Glide 종속 항목을 추가해야합니다.
Vishrut Mavani

1
@VishrutMavani 답장을 보내 주셔서 감사하지만 Android 스튜디오의 정말 어리석은 오류를 발견했습니다. 방금 빌드 출력 경로를 변경했습니다. 그건. Shuham Jain의 솔루션. 그의 해결책은 아래를 참조하십시오.
james

5
이것은 Android Studio v3.5 및 Java 프로젝트에서 내 문제를 해결했습니다. 이것은 안드로이드 앱을 지금 빌드 할 때마다 매우 표준적인 사건입니다 ... (1) 이상한 이해할 수없는 빌드 오류가 발생합니다 (2) google it (3) 스택 오버플로 (4) 특정 순서로 관련이없는 것처럼 보이는 해결책을 적용하십시오 (5)기도하십시오 (6) ) 그것은 작동합니다 (7) 단계 (1)로 가십시오
dodgy_coder

2
이 문제에 대한 해결책은 실제로 "대상 폴더 변경"이라고 믿을 수 없습니다. 하지만 그것은! ¯ \ _ (ツ) _ / ¯
mkasberg

138

안드로이드 스튜디오 3.5 | 3.6

디버그 빌드는 오류없이 완료됩니다. 서명 된 .apk를 만드는 동안 동일한 오류가 발생합니다.

buildOutput.apkData must not be null

내가 찾은 간단한 해결책은 다음 화면으로 이동할 때 서명 자격 증명을 입력 한 후 apk 서명하는 동안 대상 폴더가 기본 경로를 변경하도록 요청합니다.

현재 목적지 경로가

c : \ 사용자 \ 폴더 \ 프로젝트 \ 앱

로 변경

c : \ 사용자 \ 폴더 \ 프로젝트 \

그런 다음 서명 된 apk를 성공적으로 생성합니다.

Android 스튜디오 대상 폴더 스크린 샷


5
귀하의 솔루션에 정말 감사드립니다. 감사. 이것은 Android Studio의 간단하고 정말 어리석은 빌드 오류입니다.
james

2
와우, 당신은 이것으로 내 생명을 구했습니다. 그러나 이것은 Android Studio의 버그입니까, 아니면 프로젝트가 엉망입니까?
Vijay Kumar Kanta

1
OMG,이 Android Studio 3.5로 업그레이드하면 많은 문제가 발생합니다.
Henrique Monte

1
Android 3.5.2에서 매우 유용
CodeFluid

1
고마워 & 니스 솔루션. Android Studio 3.6 에서이 오류가 발생하더라도 Android Studio를 업데이트했습니다. 이 솔루션은 하루를 절약했습니다. 다시 감사합니다
Divakar Murugesh

49

내 릴리스 버전에 대해 "서명 된 APK 생성"을 시도 할 때도이 오류가 발생했습니다. 위의 모든 방법을 시도했지만 불행히도 아무도 나를 위해 일하지 않았습니다.

작동하는 것은 먼저 디버그 서명 버전의 앱을 생성 한 다음 릴리스 버전을 다시 생성하는 것이 었습니다.

정확히 무엇이 바뀌 었는지 또는 원래 문제가 무엇인지 알지 못했지만 효과가있었습니다. 이 오류가 상당히 성가 시므로 도움이되기를 바랍니다.


1
필자의 경우 첫 번째 버전 풍미 apk (디버그 릴리스)를 마지막 맛 (디버그 버전)으로 생성해야합니다.
과일

3
예!! 그것은 나에게도 효과가있었습니다. 감사. 왜 그런지 모르겠지만 버그처럼 보입니다.
동실

3
Gradle을 버전을 사용하는 맥 OS, 업데이트 된 모든 SDK에 AndroidStudio3.5에 노력하고 com.android.tools.build:gradle:3.5.0,이 솔루션은 나를 위해 작동하지 않습니다
Mihodi 루산

1
내 경우 : AndroidStudio3.5, 빌드 번들 / apk (s) => apk 빌드 후 서명 된 APK 생성
solo

1
미친 짓이지만이 솔루션은 효과가 있습니다. 왜 그런지 이해할 수 없습니다. Android Studio 3.5, Windows
cVoronin

22

프로젝트를 청소해도 도움이되지는 않았지만 모든 모듈에서 자동 생성 된 모든 빌드 폴더를 수동으로 삭제하는 것이 도움이되었습니다. 여기에 이미지 설명을 입력하십시오


이것은 프로젝트를 청소하는 것과 같습니다.
devgianlu

4
아니요, Android Studio에서 프로젝트를 정리 한 다음 build파일 탐색기에서 디렉토리의 App 디렉토리를 확인 하십시오. 일부 파일이 여전히 남아 있음을 알 수 있습니다.
Roman Nazarevych

내 경우에는 여러 가지 맛이 있었으며 Flavor 특정 폴더와 함께 모든 빌드 폴더를 삭제하면 효과가있었습니다. 폴더를 삭제 한 후 프로젝트를 닫았다가 다시 열어야합니다.
Hari

Gradle을 버전을 사용하는 맥 OS, 업데이트 된 모든 SDK에 AndroidStudio3.5에 노력하고 com.android.tools.build:gradle:3.5.0,이 솔루션은 나를 위해 작동하지 않습니다
Mihodi 루산

18

Android Studio 3.4로 업데이트 하시겠습니까? 나는 메시지를 받는다

원인 : buildOutput.apkData가 널이 아니어야합니다.

답을 찾고 절차를 찾았습니다.

Build -> Clean Project

그러나 그것은 효과가 없었습니다.이 절차가 /build디렉토리 의 내용을 삭제한다는 것을 알고 있지만 내 경험상 모든 경우에 작동하지 않으므로 디렉토리를 삭제하는 "원시"방법을 시도했습니다.

/app/build/ 

그런 다음 프로젝트를 다시 빌드하고 작동했습니다.


2
이것은 나를 위해 일했지만 모든 <flavor>/<buildConfig>디렉토리를 제거해야 했습니다 ( output.json파일에 관한 것입니다). Clean project혼자서도 문제를 해결하지 못했습니다.
javaxian

11

나는 여러 가지 해결책을 시도했지만 아무 일도 일어나지 않았다. 나를 위해 일했다

    deleting debug/output.json and release/output.json solved my problem

이제 APK를 생성 할 수 있습니다


9

모든 솔루션이 저와 함께 작동하지 않았습니다

안드로이드 스튜디오 V 3.5

안드로이드 gradle 플러그인 V 3.4.2

Gradle 버전 V 5.1.1

  1. 프로젝트 청소
  2. Android Studio + 무효화 캐시 다시 시작
  3. 빌드, 디버그 및 릴리스 폴더 삭제
  4. 프로젝트 만들기
  5. 서명 된 APK 생성

참고


7

문제를 해결하기 위해 많은 것을 시도했지만 아무런 도움이되지 않았습니다. 서명 된 APK를 생성하려고 할 때이 오류가 발생합니다.

이전 버전의 Android Studio로 다운 그레이드하면 도움이되었지만 (3.4.2) 해결 방법이 아닙니다.

AS의 'Clean Project'기능은 생성 된 APK가 생성 된 위치를 정리하지 않으며 전체 프로 시저를 차단할 수있는 파일이 하나 있습니다. output.json

... / app / projectname / release / output.json에서 output.json을 제거하십시오


5

Android Studio 3.5 베타 2를 사용하고 있었고 정확히 동일한 오류가 있었지만 릴리스 빌드에서만 발생했습니다. 내가 찾은 다른 모든 솔루션을 시도한 후에 다시 컴파일 할 수있는 유일한 방법은 Android Studio 3.4로 돌아가는 것입니다.


이 "솔루션"도 저에게 효과적이었습니다. 다운 그레이드는 AS 3.4.2로, downloadhere : developer.android.com/studio/archive 및 3.5.0에서로 변경 : 클래스 경로 'com.android.tools.build:gradle:3.4.2'
Loadeed

4

그것은 나를 위해 작동합니다 :

  1. 프로젝트에서 빌드 폴더를 수동으로 삭제하십시오.

  2. android studio의 터미널 에서이 명령을 입력하십시오.

Windows 사용자 인 경우

gradlew clean build

리눅스 사용자라면

./gradlew clean build

1
Gradle을 버전을 사용하는 맥 OS, 업데이트 된 모든 SDK에 AndroidStudio3.5에 노력하고 com.android.tools.build:gradle:3.5.0,이 솔루션은 나를 위해 작동하지 않습니다
Mihodi 루산

4

이 문제는 일반적으로 다른 프로젝트로 여러 개의 안드로이드 스튜디오 창을 실행할 때 발생합니다.

해결책은

  • .gradle을 삭제하는 것보다 프로젝트를 선택하고 폴더를 빌드하십시오.
  • 프로젝트를 정리하고 재 구축하는 것보다

첨부 된 스크린 샷을 참조하십시오

첨부 된 스크린 샷을 참조하십시오


Gradle을 버전을 사용하는 맥 OS, 업데이트 된 모든 SDK에 AndroidStudio3.5에 노력하고 com.android.tools.build:gradle:3.5.0,이 솔루션은 나를 위해 작동하지 않습니다
Mihodi 루산

당신이 파일을 시도 할 수 있습니다> 무효화 캐시는 / 다시 시작 삭제 자동 생성 된 파일은 .gradle 및 빌드 @MihodiHasanLushan 후
수레 쉬 Maidaragi

4

Apk 릴리스 / 디버그 위치 만 변경하면 됩니다 .

전의:

/home/sanaebadi/Desktop

변경 후 :

/home/sanaebadi/apk

3

나를위한 해결책은 apk 출력 폴더에서 모든 파일과 폴더를 삭제하는 것이 었습니다. "production"플레이버 용 서명 apk를 생성 할 때이 문제가 발생 output.json했으며 "feature"출력 폴더에 문제가 발생했습니다 Android Studio 3.6 Canary 7. 올바른 오류 메시지를 표시했습니다. 또한 Gradle Plugin 3.5.0을 사용하여 AS 3.5에서 안정적으로 작동합니다.


3

모든 솔루션이 저와 함께 작동하지 않았습니다
. 제 경우에는 AndroidStudio 3.4 이상에서 3.5로 업데이트되었습니다.
마지막으로 '목적지 폴더'를 'app / build / outputs / apk' 세부 사항 그림 으로 수정하여 해결합니다.


2

나를 위해 작동하는 유일한 솔루션은 루트 gradle에서 사용하는 것입니다.

classpath 'com.android.tools.build:gradle:3.3.0'

내가 시도한 것 :-모든 빌드 폴더를 수동으로 지우십시오-캐시를 무효화하지만 이들 중 아무것도 작동하지 않습니다

추신 : 나는 안드로이드 스튜디오 3.5 btw를 사용하고 있습니다

업데이트 :

@Vishrut Mavani와 마찬가지로 릴리스 버전의 대상 폴더를 변경하면 작동합니다


2

일반적 으로이 문제는 android Studio V3.4를 V3.5로 업데이트 할 때 발생합니다. 삭제 debug/output.json하고release/output.json 파일.

그런 다음 다음 단계를 수행하십시오.

1 단계 : 프로젝트 정리 (빌드> 프로젝트 정리)

2 단계 : 프로젝트 재 구축 (빌드> 프로젝트 재 구축)


2

나는 안드로이드 스튜디오 3.5.1 있습니다. 나를 위해 아래 단계가 작동합니다

  1. 파일-> 캐시 무효화 / 다시 시작
  2. android studio가 다시 시작된 후 빌드-> 프로젝트 정리를 클릭하십시오.
  3. 그런 다음 빌드-> 프로젝트 다시 작성

1

필자의 경우 다른 빌드 구성으로 프로젝트를 빌드하고 시작했습니다. 그러나 서명 된 apk를 생성 Cause: buildOutput.apkData must not be null하면 오류가 발생 하는 반면 apk가 생성되고 빌드 출력 토글보기가 인쇄 BUILD SUCCESSFUL됩니다. 수동 설치는 메시지와 함께 종료됩니다 App not installed. 내 잘못은 사용 compileSdkVersion 'android-P'하고 있었고 compileSdkVersion 28모든 것으로 바꾼 후에 는 잘 진행됩니다.


1

나는 모든 솔루션을 시도했지만 그 중 어느 것도 도움이되지 않았습니다! 마침내 많은 시도 끝에, 나는 그것을 알아 냈습니다. 팁을 따르십시오.

  1. 서명 키 스트로크 (해제에 사용)를 복사 yourProject/app/
  2. gradle.properties (자체 키와 관련된 값 수정) :
    MYAPP_RELEASE_STORE_FILE=KEYSTROK_NAME
    MYAPP_RELEASE_KEY_ALIAS=KEY_ALIAS
    MYAPP_RELEASE_STORE_PASSWORD=R_PASS
    MYAPP_RELEASE_KEY_PASSWORD=K_PASS
    android.enableR8=true
  3. 앱 레벨 build.gradle (Android 내부) :

    signingConfigs{
        release{
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    
    configurations {
        cleanedAnnotations
        compile.exclude group: 'org.jetbrains' , module:'annotations'
    }
    
  4. 앱 레벨 build.gradle ( buildTypes 내부) :
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. 마지막으로이 명령 :

맥: ./gradlew clean assemble_YOUR_FAVOR_Release

승리: gradlew clean assemble_YOUR_FAVOR_Release

_YOUR_FAVOR_선택적인 호의는 어디에 있습니까? 만약 당신이 호의를 사용하지 않는다면 단순히 assembleRelease대신에 사용하십시오assemble_YOUR_FAVOR_Release


1

이 문제는 내 Android Studio v3.4를 v3.5로 업데이트 한 후에 발생합니다. 이제 제대로 작동합니다.

debug / output.json 및 release / output.json 파일을 삭제하여이 문제를 해결했습니다.

Android Studio 3.5 컴파일 SDK 버전 28

APK 생성 작업


1

나는 또한 같은 버그에 짜증이났다. 그러나 내 서명 된 apk 대상c / users / project / app 에서 c / users / project로 변경 하면 나에게 도움이되었습니다.


1

1- 모든 변형에 대해 생성 된 모든 앱 번들 (.aab) 및 APK를 삭제합니다.

2- 빌드 폴더 삭제

3- 깨끗한 프로젝트


1

나가는 모든 빌드 변형 폴더와 프로젝트 폴더의 빌드 폴더를 수동으로 삭제하십시오.



0

해결책 :-

1- Build -> Clean Project도움이되지 않았다

2- Build -> Make Project도움이되지 않았다

3- 다시 시작 안드로이드 스튜디오는 도움이되지 않았다

4 - 수동으로 제거 빌드 폴더 appproject도움이되지 않았다

나를위한 유일한 해결책은 대상 폴더에서 모든 오래된 빌드를 제거하는 것이 었습니다


-1

프로젝트를 정리하면 문제가 해결 될 수 있지만 나에게는 다음과 같이 작동했습니다.

gradle 파일이있는 파일-> 동기화 프로젝트.

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