Отладка нескольких приложений - PullRequest
0 голосов
/ 28 июля 2011

У меня есть проблема, для которой я не могу найти решение. Я занимаюсь разработкой двух разных приложений для Android, которые являются частью более крупного проекта. Их объединяет одно и то же имя пакета.

Итак, мой манифест выглядит так для каждого проекта:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.test" android:versionCode="1"
 android:versionName="1.0">

Оба приложения работают нормально, но когда я отлаживаю приложение 1, оно перезаписывает приложение 2 на устройстве. Затем, когда я пытаюсь отладить приложение 2, я получаю эту ошибку:

New package not yet registered with the system. Waiting 3 seconds before next attempt.
ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.test/.RegistrationActivity }
ActivityManager: Error type 3
ActivityManager: Error: Activity class {com.test/com.test.RegistrationActivity} does not exist.

Где RegistrationAcitvity - это Activity, который я запускаю при запуске приложения.

Я обнаружил, что если я очищаю приложение 2, то оно корректно устанавливается и запускается. Однако после этого приложение 1 больше не отображается на устройстве. Как ни странно, я всегда могу запустить приложение 1 из Eclipse, но после этого я возвращаюсь к ошибке, описанной выше, которую снова можно исправить с помощью clean в приложении 2.

Другая странная вещь, которая может иметь или не иметь какое-либо отношение к этому, заключается в том, что каждый раз, когда я запускаю приложение 1, Eclipse автоматически выбирает устройство, которое я подключил. Однако, когда я запускаю приложение 2, Eclipse всегда подсказывает мне выбрать устройство. И да, опция цели развертывания в конфигурации отладки установлена ​​на автоматический - я не уверен, связано ли это или нет.

Любая помощь приветствуется!

1 Ответ

1 голос
/ 28 июля 2011

Имя пакета для пакетов Android должно быть уникальным.

Полное имя пакета в стиле Java для приложения. Имя должен быть уникальным. Имя может содержать заглавные или строчные буквы (От 'A' до 'Z'), цифры и подчеркивания ('_'). Тем не менее, индивидуальный Части названия пакета могут начинаться только с букв.

Во избежание конфликтов с другими разработчиками, вы должны использовать владение интернет-доменом как основа для ваших имен пакетов (в обратном порядке). Например, приложения опубликовано Google начать с com.google. Вы также никогда не должны использовать пространство имен com.example при публикации ваших приложений.

The Имя пакета служит уникальным идентификатором для приложения. Это также имя по умолчанию для процесса подачи заявки (см. атрибут процесса процесса элемента) и значение по умолчанию задача сродства деятельности (см. элемент атрибут taskAffinity).

источник

...