programing

원인: 빌드Output.apkData는 null일 수 없습니다.

telebox 2023. 8. 15. 11:01
반응형

원인: 빌드Output.apkData는 null일 수 없습니다.

Kotlin을 사용하는 제 안드로이드 앱은 제가 휴대폰의 에뮬레이터 o에서 '앱'을 실행하려고 할 때 이 예외를 던지고 있습니다.프로젝트를 구축할 때 오류 없이 잘 실행됩니다.

사용 중:

  • SDK 28(Android 9.0(파이))
  • Gradle 5.1.1
  • Gradle 플러그인 3.5.0-alpha03
  • 코틀린 1.3.10
  • Java 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)
        ...

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'

Android Studio 3.5용 | 3.6

오류 없이 debug builds 완료.서명된 .apk를 생성하면 동일한 오류가 발생함

buildOutput.apkData must not be null

제가 찾은 간단한 해결책은.서명 자격 증명을 입력한 후 apk에 서명할 때 다음 화면으로 이동하면 대상 폴더를 묻는 메시지가 표시됩니다. 기본 경로를 변경하기만 하면 됩니다.

현재 대상 경로를 다음과 같이 가정합니다.

c:\user\folder\project\app

로 변경합니다.

c:\user\folder\project\

그러면 서명된 apk가 성공적으로 생성됩니다.

Android studio destination folder screenshot

Android Studio 3.5 & 3.6 업데이트의 경우(APK 서명된 문제)

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

전에

c:\user\folder\project\app

끝나고

c:\user\folder\project\apk

enter image description here

Studio Android Studio의 »3.4갱신하다.

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

2단계: Clean Project (구축 > Clean Project)

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

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

릴리스 버전에 대해 "서명된 APK 생성"을 시도할 때도 이 오류가 발생했습니다.저는 위의 모든 방법을 시도해 보았지만, 안타깝게도 아무 것도 저에게 효과가 없었습니다.

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

정확히 무엇이 바뀌었는지, 원래 문제가 무엇인지는 모르지만 효과가 있었습니다.당신에게도 도움이 되길 바랍니다, 왜냐하면 이 오류는 꽤 성가시기 때문입니다...

프로젝트를 청소하는 것은 도움이 되지 않았지만 모든 모듈에서 자동으로 생성된 빌드 폴더를 수동으로 삭제하는 것이 도움이 되었습니다.

Android Studio 3.4.?업데이트 중입니다. 메시지가 표시됩니다.

원인: 빌드Output.apkData는 null일 수 없습니다.

답을 찾기 위해 절차를 찾았습니다.

Build->Clean Project

효과가 . 이를 수행하면 있습니다./build했습니다. "raw" 방식으로 디렉토리를 삭제했습니다.

/app/build/ 

그런 다음 프로젝트를 재구축했고 효과가 있었습니다.

모든 솔루션이 작동하지 않았습니다.

안드로이드 스튜디오 V 3.5

Android Gradle 플러그인 V 3.4.2

Gradle 버전 V 5.1.1

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

언급

여러 솔루션을 사용해 보았지만 아무 일도 일어나지 않았습니다. 그리고 나서 이것을 발견하고 저를 위해 일했습니다.

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

이제 pk를 생성할 수 있습니다.

저는 그 문제를 해결하기 위해 많은 노력을 했지만 도움이 되지 않았습니다.서명된 apk를 생성할 때 이 오류가 발생합니다.

이전 버전의 Android Studio(3.4.2)로 다운그레이드하는 것이 효과가 있었지만, 이것은 해결책이 아닙니다.

AS의 '프로젝트 정리' 기능은 생성된 apk가 생성된 위치를 정리하지 않으며 전체 절차를 차단할 수 있는 파일이 하나 있습니다.

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

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

제게 도움이 됩니다.

  1. 프로젝트에서 빌드 폴더를 수동으로 삭제합니다.

  2. Android 스튜디오 터미널에서 이 명령을 입력합니다.

윈도우즈 사용자인 경우

gradlew clean build

if 리눅스 사용자

./gradlew clean build

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

해결책은

  • delete .gradle 및 build 폴더보다 프로젝트를 선택합니다.
  • 프로젝트를 청소하고 재구축하는 것보다.

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

please ref screen shot attached

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

EX:

/home/sanaebadi/Desktop

변경 후:

/home/sanaebadi/apk

저의 해결책은 apk 출력 폴더에서 모든 파일과 폴더를 삭제하는 것이었습니다."프로덕션" 맛을 위한 서명된 팩을 만들 때 이 문제가 발생했습니다.output.json -> "feature" 출력 폴더에서 문제가 발생합니다.Android Studio 3.6 Canary 7올바른 오류 메시지를 표시했습니다.또한 Gradle Plugin 3.5.0을 사용하는 AS 3.5 stable에서도 작동하고 있습니다.

모든 솔루션이 작동하지 않았습니다.
저의 경우 Android Studio 3.4+에서 3.5로 업데이트합니다.
그리고 마지막으로 '대상 폴더'를 "app/build/outputs/apk"로 수정하여 해결합니다.
상세 사진

내게 맞는 유일한 해결책은 내 루트 그래들에서 사용하는 것입니다.

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

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

PS: 안드로이드 스튜디오 3.5 btw를 사용하고 있습니다.

업데이트:

@Vishrut Mavani와 마찬가지로 릴리스 버전의 대상 폴더를 변경하는 것은 작업입니다.

해결책 :-

1-Build -> Clean Project도움이 안 된

2-Build -> Make Project도움이 안 된

3- 안드로이드 스튜디오를 다시 시작하는 것은 도움이 되지 않았습니다.

4 - 수동으로 빌드 폴더 제거app그리고.project도움이 안 된

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

기존 빌드 변형 폴더를 모두 수동으로 삭제하고 프로젝트 폴더에 있는 빌드 폴더도 수동으로 삭제합니다.

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

그런 다음 다음 단계를 수행합니다.

1단계: Clean Project (구축 > Clean Project)

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

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

  1. 파일 -> 캐시 무효화/다시 시작
  2. 안드로이드 스튜디오를 다시 시작한 후 빌드 -> 프로젝트 정리를 클릭합니다.
  3. 그런 다음 빌드 -> 프로젝트 다시 빌드

저의 경우 다른 빌드 구성을 사용하여 빌드 및 실행 프로젝트를 성공적으로 수행했습니다.그러나 서명된 pk를 생성하면 오류가 발생합니다.Cause: buildOutput.apkData must not be null반면에 apk가 생성되고 Build Output이 뷰 인쇄를 전환합니다.BUILD SUCCESSFUL수동 설치가 메시지와 함께 종료됩니다.App not installed내 잘못은 사용한 것입니다.compileSdkVersion 'android-P'로 변경한 후compileSdkVersion 28만사가 순조롭습니다

저는 모든 해결책을 시도해 보았지만 아무도 도움이 되지 않았습니다! 여러 번 시도한 끝에 마침내, 저는 팁을 따라가면 된다는 것을 깨달았습니다.

  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(안드로이드 포함):

    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. 수준 빌드.gradle(기본 빌드)유형):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    

    마지막으로 이 명령:

mac:./gradlew clean assemble_YOUR_FAVOR_Release

우승:gradlew clean assemble_YOUR_FAVOR_Release

어디에_YOUR_FAVOR_당신의 선택적인 호의입니다, 만약 당신이 어떤 호의도 사용하지 않는다면, 그냥 사용하세요.assembleRelease대신에assemble_YOUR_FAVOR_Release

이 문제는 Android 스튜디오 v3.4를 v3.5로 업데이트한 후에 발생합니다. 이제 정상적으로 작동합니다.

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

Android Studio 3.5 compilesdk 버전 28

작업을 발생시키는 pk.

저도 같은 벌레 때문에 짜증이 났습니다.하지만 Signed apk 대상을 c/users/project/app에서 c/users/project로 변경하는 것이 저에게는 효과가 있었습니다.

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

2 - 빌드 폴더 삭제

3-clean 프로젝트

디버그를 위해 서명된 APK를 생성한 다음 릴리스를 위해 서명된 APK를 생성할 수 있습니다.

프로젝트를 청소하면 문제가 해결되는 것처럼 보이지만, 저에게는 이렇게 작동했습니다.

File->프로젝트를 Gradle 파일과 동기화합니다.

AS 4.0.1(스냅을 통해 설치)

Ubuntu 18.04 lts

빌드 변형을 통해 빌드를 구성합니다.

캐시 / 이 되지 . 빌드로 데이 된 은 유지빌않캐클은/시효드/등린의조합다니자로않습았되도지움이으체적하은클▁comb▁thing▁back▁to▁build▁only다▁didnt빌▁/니▁the▁to▁switch▁etc유▁was▁clean▁variant▁that▁build▁the▁build▁on▁of입니다. 활성 빌드 변형을 다시 로 전환하는 데 도움이 된 유일한 방법입니다.armDebug그 후에 청소/재건축합니다.

enter image description here

원하는 버전으로 다시 전환하면 올바르게 빌드할 수 있습니다.

enter code here다른 빌드 변형을 사용하는 경우 로그인 pk 파일을 생성할 특정 폴더를 선택합니다.서명 pk 흐름을 생성하려고 할 때 경로를 변경할 수 있습니다.저는 이게 통했어요.

제 경우 경로가 e: 드라이브를 가리키고 다른 솔루션이 작동하지 않았습니다.제가 했습니다.

  1. 경로 변경
  2. 는 경는다있합니다어야에 있어야 .c:를 몰다

그것은 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/54503325/cause-buildoutput-apkdata-must-not-be-null

반응형