В настоящее время я работаю над приложением Android, разработанным с использованием собственных инструментов (Anroid Studio, Java, Android SDK и т. Д.), Чтобы заменить существующее приложение, уже имеющееся в Play Store и разработанное с помощью Xamarin.
Я пытаюсь смоделировать обновление приложения, установив текущую версию из магазина Play, а затем установить новую версию в командной строке: adb install -r myApp.apk
.
Тогда я получаю это сообщение об ошибке:
Ошибка [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: пакет com.myapp.package попытался изменить пользователя com.domain.param]
Согласно моим исследованиям, предыдущее приложение объявляет sharedUserId
в манифест, и я не могу удалить его. Поэтому в манифест моего нового приложения я добавляю следующую информацию:
android:sharedUserId="com.domain.param"
android:sharedUserLabel="@string/sharedUserLabel"
Значения те же, что и у старого приложения. Но я все еще получаю ошибку.
Мне нужно добавить больше информации в манифест? Я использую одну и ту же подпись хранилища ключей для обоих приложений.
Редактировать: Я также объявил AuthenticatorService
с теми же значениями:
<service android:name="com.myapp.package.AuthenticatorService">
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator"
/>
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
</service>
Есть идеи?