'null'로 인해 설치 실패-Android Studio 3.5


83

APK 설치 문제가 발생한 이후로 Android 스튜디오를 3.5로 업데이트했습니다. 다음은 표시되는 유일한 로그입니다.

Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry

이것은 실제 기기에 APK를 설치하려고 할 때 발생합니다. 장치에서 앱을 제거한 다음 빌드를 다시 실행하면 한 번만 설치되고 다음 설치에서 계속이 오류가 발생합니다. 에뮬레이터에서 잘 실행되지만 모든 것에 에뮬레이터를 사용할 수는 없습니다.

내가 시도한 것 :

  • Android Studio 구성 파일을 삭제했습니다.
  • 프로젝트에서 Gradle 파일을 삭제했습니다.
  • 캐시를 무효화하고 재설정했습니다.
  • 프로젝트를 정리 / 재 구축했습니다.
  • 비슷한 문제를 찾았습니다. Stackoverflow (내 문제와 일치하는 것이 없습니다)
  • 새로 설치됨 (SDK를 포함한 모든 파일 제거) Android Studio 3.5

최신 정보

내 컴퓨터에 Linux Mint를 설치하고 AS 3.5를 테스트했습니다. 어떤 이유로 Android 7 이하 장치에서도 모든 것이 잘 작동합니다.

이전 OS : Windows 10 1903

현재 OS : Linux Mint 19.2

이 문제는 Windows 시스템에서 비롯된 것 같습니다.


나는 비슷한 문제를 가지고 -하지만 나에게 그건 INSTALL_PARSE_FAILED_NOT_APK동안 에스프레소 테스트를 실행
adek111

나는 또한 받고 있어요INSTALL_PARSE_FAILED_NOT_APK
jobevers에게

나도 같은 문제가 발생합니다.
Santhosh

14
와우 Google, 어떻게 이것을 안정적인 릴리스로 만들 수 있습니까 ?!
0101100101

Android Studio에서 Instant Run이 활성화되어 있는지 확인 했습니까?
Reaz Murshed

답변:


99

실행 / 디버그 구성 대화 상자 열기 (Windows : 실행> 구성 편집)

You app> General> Installation Options> Install Flags를 편집 합니다 .

설치 플래그를 추가하십시오 -r -t.

이 플래그는 adb install -r -t apkpath

화면 그림


2
이 플래그 수단은 adb install -r -t apkpath, 그런 것 같아요 @ TaseerAhmad.
胡晟昊

21
-r"기존 응용 프로그램 교체"를 의미합니다. -t"테스트 패키지 허용"을 의미합니다.
duckbrain

1
이 남자는 어디에서 왔으며이 해결책에 대해 어떻게 생각 했습니까? 그에게 메달을 줘!
0101100101

4
나를 위해 일하지 않습니다! :( 내 문제를보세요. 당신의 문제와는 조금 다릅니다. stackoverflow.com/questions/57770464/…
Arsalan Shah

3
Windows 버전 인 경우 설정은 실행> 구성 편집입니다.
베아트리체 린

17

환경 설정-> 디버거에서 "Use libusb backend"를 비활성화해야합니다. 여기에 이미지 설명 입력


이 솔루션 만이 도움이되었습니다
-Xubuntu

이것이 효과가 있다고 믿을 수 없습니다! Android Studio 3.5.1 Android Debug Bridge 버전 1.0.41 버전 29.0.5-5949299
Kebab Krabby

1
매력처럼 작동합니다. 달 동안이 문제 만이 답변 나를 위해 일한 고투
srisindhu saride

1
OMG! 이것은 큰 문제를 해결했습니다. 이 문제로 몇 달 동안 고생했습니다 .. 와우!
Vivek

1
OSx 10.15에서이 문제를 해결했습니다! 감사합니다!
Chris.Jenkins

12

Android Studio의이 문제는 그 이하의 기기 API 26(Android 8)에서 발생합니다. 이는 InstantRun현재 ApplyChanges 로 알려진의 교체로 인해 발생합니다 .

다음 업데이트에서 수정하기 전에 두 가지 방법 만있을 것 같습니다.

  1. 에서 실행하십시오 API>=26.
  2. 코드를 변경할 때마다 에서 로 또는 그 반대로 run configuration변경 deploy됩니다 . 올바르게 이해하면 앱을 올바르게 다시 빌드하고 버그를 해결합니다.APKApp bundle

물론 AndroidStudio에서 앱을 실행하기 전에 기기에서 앱을 수동으로 삭제하는 옵션이 있습니다.


1
Android 9.0 장치가 있고이 문제가 있습니다. 그러나 에뮬레이터와 실제 장치간에 실행중인 테스트를 혼합하면 앱과 테스트가 자주 실행되는 것처럼 보입니다. 이유는 모르겠지만 누군가에게 도움이 될 수도 있습니다.
adek111

대신을 API26+클릭하면에서 앱을 성공적으로 다시 실행할 수 있습니다 . 의 오른쪽에있는 새 버튼입니다 . Apply changesrerunrerun
mohax

6

나를 위해 앱을 제거하거나 프로젝트를 정리하면 문제가 "해결"됩니다. 덜 실망스럽게 만들기 위해 다음과 같이 빌드 유형을 디버그하기 위해 깨끗한 작업을 추가했습니다.

buildTypes {
    ...
    debug {
        clean
    }
    ...
}

4

Apply Changes 에 관한 릴리스 노트 를 읽은 후 마침내 https://developer.android.com/studio/run#apply-changes-run-fallback 에서 해결책을 찾았습니다.

변경 사항 적용에 대한 대체 실행 활성화

Apply Changes and Restart Activity 또는 Apply Code Changes를 클릭하면 Android 스튜디오가 새 APK를 빌드하고 변경 사항을 적용 할 수 있는지 여부를 결정합니다. 변경 사항을 적용 할 수없고 변경 사항 적용이 실패하는 경우 Android 스튜디오는 대신 앱 실행 아이콘을 다시 실행하라는 메시지를 표시합니다. 그러나 이러한 상황이 발생할 때마다 메시지를 표시하지 않으려면 변경 사항을 적용 할 수 없을 때 앱을 자동으로 다시 실행하도록 Android 스튜디오를 구성 할 수 있습니다.

이 동작을 활성화하려면 다음 단계를 수행하십시오.

  1. 설정 또는 기본 설정 대화 상자를 엽니 다.
    • Windows 또는 Linux의 경우 메뉴 표시 줄에서 파일> 설정 을 선택하십시오 .
    • macOS의 경우 메뉴 표시 줄에서 Android Studio> Preferences 를 선택 합니다.
  2. Build, Execution, Deployment> Deployment로 이동합니다 .
  3. 변경 사항 적용 작업 중 하나에 대해 자동 대체 실행을 활성화 하려면 확인란 을 선택합니다 .
  4. 확인을 클릭하십시오.

Linux에서 실행되는 스크린 샷


1
OS를 Linux로 변경했고 AS 3.5가 제대로 작동합니다.
Taseer

4

https://issuetracker.google.com/issues/139782879 에서 Google 팀이 언급 한대로 Lineage OS에 문제가 있습니다 .

LineageOS를 사용하여 장치에서 재현 할 수 있습니다. DeltaInstall에 사용하는 시스템 호출을 완전히 지원하지는 않습니다.

확실한 해결책은 없습니다 (빌드 폴더에서 APK를 제거하거나 애플리케이션을 제거하는 것 외에는).

이에 대한 해결 방법이 있어야하지만 현재로서는 LineageOS에 DeltaInstall이 없으며 항상 느린 전체 설치를 수행해야합니다.

NothingOP에서 지적한대로 변경 하면 APK가 기기에 배포되지 않으므로 (오류가 표시되지 않음) 문제가 해결되지 않습니다.

편집하다:

이것은 Android Studio 3.6에서 수정되었습니다.

피드백 주셔서 감사합니다. 이 문제는 최신 버전 3.6에서 수정되어야합니다.


4

빌드> 클린 프로젝트 는 저를위한 작업입니다. 다른 설정을 변경하기 전에 먼저 시도하십시오.

해피 코딩 :)


3

Deploy select Default APK and install flag = -r -t and then Apply for the run 에서 코드 편집 실행 구성의 솔루션을 얻었습니다 . 앱은 모든 기기와 에뮬레이터에서 실행됩니다. 나는 OPPO 1 plus, Samsung Tab, Emulator에서 testest였습니다 .

Android Studio에서 실행 버튼 근처에 Edit Run 구성을 생각하십시오.

앱 편집> 일반 ==> 설치 옵션 ==> 설치 플래그

설치 플래그 추가 -r -t

-r은 "기존 응용 프로그램 교체"를 의미합니다. -t는 "테스트 패키지 허용"을 의미합니다.

여기에 이미지 설명 입력


2

3.5로 업그레이드 한 후에도 이와 동일한 문제가 발생합니다. 연결된 장치에서 '실행'을 수행하는 데 행운이 있었는지 궁금합니다.

업데이트 : "실행 / 디버그 구성"대화 상자의 설치 옵션에서 "앱 번들의 APK"를 설정하여이 작업을 수행했습니다.


1

장치에서 앱을 삭제 / 제거하면 문제가 해결되었습니다.


API 29 에뮬레이터에서 앱을 제거했는데 도움이되었습니다.
CoolMind

1

아래 구성을 사용하여 apk를 설치 / 실행하기 전에 " clean "gradle 작업 종속성을 추가하십시오 .

project.afterEvaluate {
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def capitalizedVariant = variant.name.capitalize()
            def assembleVariantTask = project.tasks."assemble${capitalizedVariant}"
            assembleVariantTask.dependsOn clean
        }
    }
}

위의 코드를 복사 하여 app/build.gradle파일에 붙여 넣으면 모든 빌드 변형에 적용됩니다.

특히, 디버그 및 릴리스 빌드 유형 만있는 경우 위 코드는 아래와 같습니다.

assembleDebug.dependsOn clean
assembleRelease.dependsOn clean

1

이전 응용 프로그램을 제거한 다음 프로젝트를 다시 실행하는 데 도움이 된 것. 이 경우 이전 서명 인증서는 신경 쓰지 않습니다.


1

실제 xiaomi pocophone 1에서 응용 프로그램을 실행하고 먼저 에뮬레이터에서 응용 프로그램을 실행 한 다음 xiaomi pocophone 1에서 응용 프로그램을 실행하여이 문제를 해결했을 때도이 오류가 발생했습니다.


1
splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a','x86_64'
        universalApk true
    }
}

'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'와 같은 구성이 다르기 때문에 위의 구성을 build.gradle 파일에 추가해야합니다.


0

마침내 해결책을 찾았습니다

v2SigningEnabled를 true로 설정하십시오.

 signingConfigs {
    release {
        v2SigningEnabled true
    }
}

0

나는 문제에 직면하지 않았습니다. 그러나 이전에는 Android Studio의 Instant Run에 몇 가지 문제가있었습니다. Android Studio에서 다음 설정을 확인하고 설정을 선택 취소하여 코드가 지금 작동하는지 확인하는 것이 좋습니다.

로 이동 Android Studio -> Preference한 다음 Deployments.

여기에 이미지 설명 입력

이 기능을 더 잘 이해하는 데 도움이되는 Android Studio 3.5의 새로운 기능은 다음과 같습니다.

여기에 이미지 설명 입력


0

출력이 비어 있으면 "adb devices"명령을 실행 한 다음 장치를 다시 연결하십시오. 이것은 동일한 오류로 나를 도왔습니다. Android 스튜디오 3.5는 기기가 연결 해제되었음을 확인하지 않습니다.


0

에뮬레이터에서 앱을 제거하고 실행했는데 모든 것이 정상으로 돌아 왔습니다.


0

나를 minSdkVer = 22, tarSdkVer = 28위해 Gradle -> app -> Tasks -> build -> clean && cleanBuildCache행동을 실행 하면 문제가 해결되었습니다.


0

망치 아이콘을 눌러 앱을 다시 빌드 한 다음 설치했습니다. 그래서 모르겠어요? 전체 안드로이드 해킹 작업 플랫폼이 엉망입니다.

그 모든 돈이지만 구글은 자신의 진정한 운영 체제를 생각 해낼만큼 좋은 프로그래머를 고용하거나 찾을 수 없습니다.


0

나는 또한 같은 문제에 직면했다, 나는 다음 단계를 따랐다. 1) Clean Project 2) Rebuilt Project

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


0

제 경우에는 위의 모든 답변으로 해결할 수 없으므로 다른 방법을 찾습니다. 마침내 해결책을 찾았습니다. 올바른 전화 드라이버를 찾으십시오. 개발 전화는 Samsung Galaxy Note 2 (모델 : GT-N7105 / Android 4.1.2) 입니다. 나는 그것을 어떻게 해결했는지에 대한 해결책을 공유합니다. 시간을 절약하기를 바랍니다.


0

새 모듈을 테스트 할 때 문제가 발생합니다. 먼저 개별적으로 작성한 다음 메인 앱에 추가합니다. 메인 앱에 추가 할 때 휴대폰에서 "test_app"을 삭제합니다.



0

제 경우에는 APK 서명 확인을 비활성화해야만 작동합니다.

$ adb shell settings put global verifier_verify_adb_installs 0

-r -t위에서 언급 한 플래그를 사용하여


0

새로운 실제 장치를 얻고 android studio 3.5에서 apk를 설치하려고 할 때 내 Mac OS에 여전히 버그가 있습니다 .- 그리고 어떻게 수정하는지 추악한 방법을 찾았습니다 .- 스튜디오에서 터미널을 열고 따르십시오.

cd app/build/outputs/apk/debug
adb install -r -t your_app_name.apk

그리고 그것은 각 프로젝트와 각 장치와 관련이 있습니다 !!

편집 :

나는 결국 설치했다

Android Studio 3.6 카나리아

  • 3.5보다 더 작동하는 버전입니다.

그러나 여전히 설치 플래그에 추가 해야합니다. -r -t


'안정적인'3.6 릴리스를 기다려야합니다.
Taseer

0

몇 분 전에 실제 장치에서 내 앱을 실행하고 완료되기 전에 gradle 빌드를 중지했을 때이 문제가 발생했습니다. 방금 한 것은 장치에서 앱을 제거하고 AVD와 실제 장치에서 동시에 앱을 다시 실행하는 것이었고 작동했습니다. 이것이 당신에게도 효과가 있기를 바랍니다.


0

주요 솔루션

  1. 파일-> 설정-> 빌드, 실행, 배포 -> 디버거 > 비활성화Use libusb backend

  2. Gradle (IDE 오른쪽에있는 플랩) -> android-> 앱-> 작업-> 설치-> uninstallAll 또는 다음과 같은 방법으로 콘솔에서 수행 할 수도 있습니다.

    $ ./gradlew uninstallAll



기타 팁 :

  • 실행 / 디버그 구성에서 앱 삭제 및 다시 만들기

    • 설치 옵션-> 모든 사용자에 대해 설치 확인
  • 실행 / 디버그 구성-> 시작 옵션> 시작 : 지정된 활동> 활동 선택

  • 다른 물리적 장치, IDE 또는 PC 버전을 사용하여 앱 설치

  • IDE를 다시 설치하고 .android를 삭제하십시오.

  • 기본 솔루션으로 다시 시도


앱을 설치하고 열려면 다음 명령과 함께 adb를 사용할 수 있습니다.

$ adb install -r -t absolute-path.apk

$ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

GL

출처


-1

안드로이드 변경 시도 : appComponentFactory=""to android:appComponentFactory="new", "new"어떤 단어라도 가능


-2

마지막으로 설치 옵션 DEPLOY-> 선택 4 번째 옵션-> (Nothing) 옵션-> 적용에서 코드 편집 실행 구성 변경에 대한 솔루션을 얻었으며 앱은 android studio 3.5에서 제대로 작동합니다. 모바일 및 에뮬레이터에서도. 이것은 안드로이드 버전 9에서도 제대로 작동합니다. 이것은 영구적 인 해결책입니다.

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