제거하지 않고 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES를 처리하는 방법
APK를 다시 설치하려고했습니다.
$adb install -r new.apk
그리고 오류를 보여줍니다 :
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
한 가지 해결책은 new.apk를 제거하고 설치하는 것입니다.
그러나 APK를 다시 빌드하고 제거하지 않고 다시 설치할 수 있는지 궁금합니다. 예 : AndroidManifest.xml에서 일부 구성을 변경하거나 APK에 서명하지 마십시오.
"INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES"의 전체 의미를 말해 주시면 감사하겠습니다.
새 애플리케이션 (개발 시스템)이 이전 애플리케이션 사본 (장치 / 에뮬레이터에 설치된)과 다른 서명 키로 서명되었음을 의미합니다. 예를 들어, 이것이 장치 인 경우 다른 개발 시스템 (예 : 다른 개발자의 시스템)에서 이전 사본을 넣었을 수 있습니다. 또는 이전 키는 프로덕션 키로 서명되고 새 키는 디버그 키로 서명됩니다.
새로운 Xoom을 테스트하는 동안이 문제가 발생했습니다. 이전에 마켓 플레이스에서 앱을 설치했습니다. 나중에 새 버전의 앱을 테스트하는 동안이 오류가 발생했습니다.
마켓 플레이스를 통해 설치된 앱을 삭제하여 문제를 해결했습니다 (휴지통을 잡고 드래그). 그 후 아무 문제없이 개발 버전을 배포 할 수있었습니다.
팀의 다른 개발자가 배포하려는 하드웨어 장치에 앱을 빌드했을 때 이런 일이 발생했습니다. 하드웨어에서 앱을 제거하면 문제가 해결되었습니다.
adb를 사용하여 장치에서 앱을 제거하는 명령입니다.
adb uninstall <package name>
신비로운 원래 APK를 제거한 후에도이 오류가 발생했습니다. 마지막으로 테스트를 위해 Nexus 7에서 여러 명의 사용자를 설정했으며 다른 사용자 중 한 사람을 위해 앱이 여전히 설치되어 있음을 깨달았습니다. 모든 사용자를 위해 제거하면 오류가 사라졌습니다.
설치된 이전 버전을 삭제하지 않고 Eclipse를 통해 장치에서 디버깅 할 수 있도록 업데이트를 코딩하는 동안 패키지 이름을 변경했습니다. 다시 설치하려고 할 때 사용한 패키지 이름을 되 돌리지 않고이 오류가 발생했습니다. 동일한 패키지 이름을 사용하여 재설치에 성공했습니다.
장치에서 이전 빌드를 삭제하고 다시 설치하십시오. device.keystore가 이미 장치에 존재하므로 빌드를 제거하고 APK 만 설치하면됩니다.
감사
비슷한 오류가 발생하는 또 다른 유스 케이스에 직면했습니다. 처음에 오류가 발생했을 때 당황하고 제거했습니다. /data/data/{package.name}
그 후 시도했지만 여전히 문제가 있습니다. 그런 다음 제거를 시도했지만 실패했습니다.
그런 다음 /system/app
(루트 액세스 필요) 에있는 apk 파일을 제거하고 제거를 시도했지만 성공했습니다.
그 후 apk를 다시 설치하려고 시도했지만 작동했습니다.
가치있는 것을 위해 Cordova 프로젝트에 새 플러그인을 추가 한 후이 문제가 발생했습니다. 나는 cordova가 USB를 통해 장치에 직접 빌드하고 설치하도록했습니다.
장치에서 앱을 제거하여 문제를 해결했으며 다음 배포에서는 아무런 문제가 없었습니다.
출력 창에서 "Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]"오류와 함께 Andorid 장치 또는 에뮬레이터에 배포하지 못한 경우 장치 또는 에뮬레이터에서 기존 앱을 삭제하고 다시 배포하십시오. 디버그 빌드는 디버그 인증서를 사용하고 릴리스 빌드는 구성된 인증서를 사용합니다. 이 오류는 단순히 기기에 설치된 앱의 인증서가 설치하려는 인증서와 다르다는 것을 알려줍니다. 비 개발 (앱 스토어) 시나리오에서 이는 디바이스에 설치하기에 안전하지 않은 손상되었거나 수정 된 앱의 표시 일 수 있습니다.
위에서 아무것도 나를 위해 일하지 않았다. 나에게 문제는 android-support-v7-appcompat에 대한 Java 빌드 경로에 잘못된 소스가 있다는 것입니다. 프로젝트> 빌드 경로> 빌드 경로 구성>으로 이동하십시오. 소스 탭 아래에 android-support-v7-appcompat / gen, android-support-v7-appcompat / libs 및 android-support-v7-appcompat / src가 있는지 확인하십시오. 확인을 클릭하면 작동합니다.
오늘 같은 오류가 있었지만 문제는 정확히 같지 않았습니다. VirtualBox에 Android가 설치된 ADB를 사용하고 있습니다. 내 응용 프로그램 (서명 /하지 서명, 디버그 / 릴리즈 모드)의 다른 버전을 설치하려고하고 다른 방법이 오류를 가지고 : INSTALL_FAILED_UID_CHANGED
와 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.
이제를 볼 때 /data/data/{package.name}
앱을 제거한 후에도 여전히 존재하는 많은 파일을 발견했습니다. 나는 rm -rf
성공하지 않고 그들에게 노력했다 : I / O 오류가 발생했다.
이에 대한 해결책은 다음과 같습니다.
- VM 종료
vdfuse
(읽기 / 쓰기)로 VDI 이미지 마운트- 수리
Partition1
와 이미지 파일을e2fsck
- VM 마운트 해제 및 다시 시작
시뮬레이터가 실행 중이고 adb가 설치하려고한다는 것을 알 때까지 동일한 문제가 발생했습니다.
확인은 패키지 이름을 기반으로하기 때문에 config.xml 또는 매니페스트 파일 내에서 원하는 다른 이름으로 패키지 이름을 변경할 수 있습니다.
앱을 게시 할 때 이름을 다시 변경 하는 것을 잊지 마십시오 !
Genymotion에서 gradle 작업 connectedDebugAndoidTest
(또는 connectedAndroidTest
) 을 실행하려고하는 동안이 문제가 발생 했습니다 . 일반 에뮬레이터 에서 실행 하면 문제가 해결되었습니다.
다른 계정으로 앱을 설치했다고 생각합니다. (여러 계정 모드 기능) 설정> 앱> "앱 이름"> 제거에서 앱을 제거 할 수 있습니다
'Programing' 카테고리의 다른 글
java.sql.ResultSet의 크기는 어떻게 얻습니까? (0) | 2020.03.27 |
---|---|
SQL Server에서 '피벗'을 사용하여 행을 열로 변환 (0) | 2020.03.27 |
이 '느린 네트워크가 감지되었습니다…'로그가 Chrome에 표시되는 이유 (0) | 2020.03.27 |
시스템의 차이. (0) | 2020.03.27 |
Linux에서 GCC의 기본 포함 경로를 추가하는 방법은 무엇입니까? (0) | 2020.03.27 |