Android: невозможно перезаписать существующее приложение новой версией

Я разрабатываю новую версию существующего приложения. Это полный редизайн с нуля, поэтому я создал отдельный проект для этого обновления. Теперь мне нужно проверить поведение приложения при обновлении с v2 (старая версия) до v3 (новая версия). Оба проекта имеют одинаковый идентификатор приложения, имя модуля и подписаны одним и тем же ключом. Однако, когда я устанавливаю v2, а затем впоследствии устанавливаю v3, старое приложение не перезаписывается; Я заканчиваю с двумя установками. Что мне не хватает, что заставляет Android рассматривать эти приложения как отдельные?

1 ответ

Решение

Два APK не могут быть установлены на устройстве, если они имеют одинаковый идентификатор приложения. Имя модуля не имеет значения, а другой ключ подписи просто приведет к полной деинсталляции / переустановке вместо обновления.

Дважды проверьте ваши идентификаторы приложений для незначительных опечаток.

Также проверьте, есть ли у вас applicationIdSuffix определено в вашем build.gradle. Это довольно часто, чтобы добавить что-то вроде .debug для отладки сборок, чтобы на вашем устройстве можно было установить отладочную и выпускную сборки. Если это так, убедитесь, что вы пытаетесь выполнить обновление с помощью сборки выпуска.

Вы также можете войти (или показать идентификатор приложения) в Toast, чтобы убедиться, что они отличаются и что вы ожидаете. Просто позвони BuildConfig.APPLICATION_ID чтобы получить текущий идентификатор приложения.

Другие вопросы по тегам