Как правильно изменить имя пакета в AndroidManifest.xml (например, в проекте zxing/barcodescanner)

Я новичок в разработке Android, поэтому надеюсь, что мой вопрос прост, но не совсем глуп. Я использую Eclipse для создания приложения для Android. В его основе сканер штрих-кодов гениальных ребят из zxing. Я уже внес некоторые изменения в исходный код, и все работает нормально. Но у меня все еще есть проблема, что оригинальный сканер штрих-кода и мое приложение не могут работать одновременно на одном мобильном устройстве. Насколько я понял, проблема в имени пакета. Поэтому я попытался изменить его на что-то другое. Но это испортило весь мой проект, потому что я больше не могу получить доступ к своим ресурсам (например, findViewById(R.id.btDone); ‹-- R нельзя преобразовать в переменную).

Может ли кто-нибудь сказать мне, что еще мне нужно изменить, чтобы мой код снова заработал?

Это начало моего AndroidManifest.xml, где я пытался изменить имя пакета:

<manifest
  xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.google.zxing.client.android"
  ...

Я также нашел интересную запись в build.properties: (?!)

application-package=com.google.zxing.client.android

Спасибо вам, ребята!


person Thassilo    schedule 24.01.2012    source источник
comment
Мы настоятельно не рекомендуем людям начинать с копирования нашего кода для сканера штрих-кода. Не очень круто.   -  person Sean Owen    schedule 25.01.2012
comment
Хм... как мне вместо этого использовать код? Я не хочу заставлять пользователя устанавливать приложение штрих-кода отдельно. Я определенно не намерен претендовать на авторство исходного кода или нарушать какие-либо авторские права!   -  person Thassilo    schedule 25.01.2012
comment
Конечно, вам может не понадобиться сторонняя зависимость: поэтому вам следует написать собственное приложение для сканирования, а затем использовать основную библиотеку для декодирования. Вы можете повторно использовать части сканера штрих-кода по мере необходимости. Что нам не нравится, так это то, что мы начинаем с копирования и вставки, поскольку конечный результат в слишком многих случаях остается на 90% копией и вставкой, и это кажется неправильным, даже если это технически законно. Может быть, вы действительно вносите новшества в приложение, но большинство тех, кто это делает, — нет.   -  person Sean Owen    schedule 25.01.2012


Ответы (3)


Это должно сделать это: щелкните правой кнопкой мыши проект -> Инструменты Android -> Переименовать пакет приложения.

person Scalarr    schedule 24.01.2012

Android — соглашение об именах пакетов

Пакет ссылается на каталог файлов, который вы создали. Если у вас все еще есть проблемы, особенно с Android, иногда выполняйте project->clean, а затем перестраивайте исправления некоторых проблем со связью с ресурсами.

person Benoir    schedule 24.01.2012

Предполагая, что вы выбрали имя пакета new:

com.superscanner.android

И с именем пакета old (например):

com.google.zxing.client.android

Просмотрите весь исходный код и измените:

import com.google.zxing.client.android.R;

To:

import com.superscanner.android.R;

Вам также придется переименовать все ваши каталоги, чтобы они соответствовали новой структуре пакета, и везде изменить операторы import и package, но это должно помочь вам в работе.

person Marvin Pinto    schedule 24.01.2012
comment
Это работает, только если вы хотите изменить исходный код, а не пакет приложения! - person Ektos974; 06.03.2015