Android: невозможно перезаписать существующее приложение новой версией
Я разрабатываю новую версию существующего приложения. Это полный редизайн с нуля, поэтому я создал отдельный проект для этого обновления. Теперь мне нужно проверить поведение приложения при обновлении с v2 (старая версия) до v3 (новая версия). Оба проекта имеют одинаковый идентификатор приложения, имя модуля и подписаны одним и тем же ключом. Однако, когда я устанавливаю v2, а затем впоследствии устанавливаю v3, старое приложение не перезаписывается; Я заканчиваю с двумя установками. Что мне не хватает, что заставляет Android рассматривать эти приложения как отдельные?
1 ответ
Два APK не могут быть установлены на устройстве, если они имеют одинаковый идентификатор приложения. Имя модуля не имеет значения, а другой ключ подписи просто приведет к полной деинсталляции / переустановке вместо обновления.
Дважды проверьте ваши идентификаторы приложений для незначительных опечаток.
Также проверьте, есть ли у вас applicationIdSuffix
определено в вашем build.gradle. Это довольно часто, чтобы добавить что-то вроде .debug
для отладки сборок, чтобы на вашем устройстве можно было установить отладочную и выпускную сборки. Если это так, убедитесь, что вы пытаетесь выполнить обновление с помощью сборки выпуска.
Вы также можете войти (или показать идентификатор приложения) в Toast, чтобы убедиться, что они отличаются и что вы ожидаете. Просто позвони BuildConfig.APPLICATION_ID
чтобы получить текущий идентификатор приложения.