2010-03-16 2 views
4

У меня есть проект Android, который разветвлен на три разных приложения: app-1, app-2 и app-3, которые применяют некоторые настройки. В настоящее время существует много дублирования кода, что делает обслуживание кошмаром: делайте изменения в одной из ветвей, а затем объединяйте остальные два.Почему изменение подписи приложения в Android после изменения класса?

Таким образом, мы создаем проект библиотеки с именем app-core, который выдает большую часть дублированного кода. Все идет нормально.

Когда я запускаю это в эмулятор, где приложение уже загружено (до рефакторинга), я получаю это исключение:

Re-installation failed due to different application signatures

Иной подпись? Но я просто добавил строку в .classpath для ссылки на проект Java app-core!

Главный вопрос: являются ли существующие пользователи также обеспокоены этим?

И вопрос стороны: почему это другая подпись?

+0

Был ли у эмулятора выпуск или отладочная сборка? –

ответ

12

Цифровая подпись управляется ключом подписи, который существует на машине, которая подписывает приложение. Если Developer A компилирует приложение, используя стандартный ключ отладки, и устанавливает его в эмулятор, затем пытается установить еще одну вариацию приложения - одну, подписанную с производственным ключом, подписанную с отладочным ключом разработчика B и т. Д. - в тот же эмулятор, вы получите эту ошибку.

The main question is: are the existing users going to be bothered by this too?

У вас есть ключ подписи продукции, который вы использовали для версии приложения, которое используют ваши существующие пользователи? Если да, то проблем не должно быть. Если нет, вы ввернуты.

+0

Есть ли способ получить ключ подписи на производство? Или действительно, я ввернута? –

+0

@PradipKharbuja: «Есть ли способ получить ключ подписи продукта?» - вы создали его перед отправкой своего приложения. – CommonsWare

+0

Я имею в виду, могу ли я снова получить этот ключ? Потому что я потерял его ... :( –

1

Удалите приложение на устройстве, а затем снова запустите код, он будет работать. Это случается для меня, и я пробовал то же самое, теперь он работает правильно.

0

Для этой проблемы вам нужно проверить правильность использования ключа в разделе (Window-> Preferences-> Android-> build). Это можно проверить в файле android.mk приложения. И при размещении правильного пути ключа CLEAN и BUILD проекта, чтобы избежать этой ошибки.

0

У меня был подобный вопрос. Если вы устанавливаете его на свое устройство, вам необходимо удалить приложение на своем устройстве до его установки из eclipse. Это определенно решит вашу проблему.

Cheers

Смежные вопросы