Удаление из эмулятора не работает

Делаю первые шаги с Android. Я использую Mac, а не Eclipse.

Я установил свое первое игрушечное приложение с помощью

adb установить bin/*.apk

и проверил, что он существует в эмуляторе. Затем я внес некоторые изменения, перезапустил сборку и попытался установить снова, что привело к сообщению об ошибке.

   pkg: /data/local/tmp/DefaultActivity-debug.apk

Ошибка [INSTALL_FAILED_ALREADY_EXISTS]

Хорошо, поэтому я должен сначала удалить. Итак, я попробовал следующее:

adb uninstall DefaultActivity adb uninstall de.rf.DefaultActivity adb uninstall DefaultActivity-debug adb uninstall /data/local/tmp/DefaultActivity-debug.apk adb uninstall de.rf

но все они просто выдавали сообщение об ошибке «Сбой» без каких-либо дополнительных объяснений.

Это не очень большая проблема, потому что я могу просто перезапустить эмулятор и использовать "adb install ....", но мне любопытно: как мне правильно использовать команду "удалить"?

Моя активность выглядит так:

пакет де.рф; ... открытый класс DefaultActivity расширяет активность { ... }

Ответы (2)

Вам не нужно удалять, когда вы устанавливаете уже установленное приложение, вы должны использовать adb install -r. (для получения дополнительной помощи просто введите adb)

Чтобы удалить приложение, вы должны использовать adb uninstall package-name(например adb uninstall com.example.app).

Большое спасибо, это работает. Как ни странно, я несколько раз читал adb -help, но как-то всегда упускал из виду ключ (четко видимый) -r!!!

Чтобы удалить пакет с помощью adb, вам нужно использовать имя пакета, указанное в манифесте, например:

adb uninstall com.shadowburst.showr

Вы также можете использовать этот -kпараметр, чтобы избежать удаления данных приложения при удалении.

Вы также можете удалить приложения из приложения « Настройки » : нажмите « Приложения » , найдите свое приложение в списке, затем нажмите « Удалить » . Это работает, даже если приложение было установлено через adbили непосредственно из APK-файла.

Кстати, не используйте de.rfв качестве имени пакета, даже если у вас есть интернет-домен rf.de. Вы хотите, чтобы имя пакета было чем-то внутри домена, которым вы управляете, чтобы гарантировать, что оно не будет конфликтовать с другим написанным вами пакетом Java (например, с другим приложением или библиотекой).

Спасибо за ваши предложения и пояснения! Прямо сейчас я просто играю, и я обязательно последую вашей рекомендации и буду использовать более разумное имя пакета, когда начну делать настоящую работу.
Кстати, при нажатии на «Настройки» отображается окно сообщения «Неподдерживаемое действие». Может быть, это связано с тем, что я использую Android SDK, который уже немного устарел (бета-версия 0.9)?
Вероятно. Ранние версии эмулятора были немного дрянными.