Название приложения для Android Проблема - PullRequest
2 голосов
/ 20 декабря 2011

Моя цель:

  1. Интеграция todoapplication с открытым исходным кодом в качестве приложения библиотеки в мое основное приложение.

Шаги, которые я выполнил:

  1. Сконфигурировал todoapp как проект библиотеки, щелкнув функцию Islibrary.
  2. Добавлена ​​библиотека в мой основной проект.
  3. Добавлены все действия проекта библиотеки с их полными именами пакетов в мой основной файл манифеста Android согласно этой ссылке .

Проблема:

Я получаю ошибку во время выполнения, нет ошибок компиляции, и проект библиотеки прекрасно интегрирован.

Основная причина:

Когда я анализировал Logcat, я понимаю, что это связано с конфликтом имен приложений. Мое главное приложение имеет имя приложения как «желание» в своем файле манифеста. Проект библиотеки в файле манифеста также имеет название «Todoapplication»

В файле Java есть строка кода, как показано ниже:

m_app = (TodoApplication) getapplication();

В этой строке выдается исключение времени выполнения, поскольку в основном файле манифеста нет параметра Todoapplication в параметре name.

Может кто-нибудь, пожалуйста, помогите мне с ситуацией. Спасибо.

1 Ответ

4 голосов
/ 20 декабря 2011

Если у проекта библиотеки есть пользовательский класс Application, вам нужно будет наследовать от его пользовательского класса Application, когда вы определяете свой. Итак, вместо WishApplication extends Application.

есть WishApplication extends ToDoApplication

Обратите внимание, что использование пользовательского Application часто бессмысленно. Он имеет ту же эффективную область действия, что и статические члены данных, и может быть только один Application объект. Поэтому я рекомендую избегать использования настраиваемого Application класса в библиотеках, поскольку у вас не может быть двух библиотек, требующих, чтобы хост-приложение использовало их настраиваемый Application класс. А для вашего собственного кода используйте пользовательский класс Application только в том случае, если он чем-то явно превосходит обычный элемент статических данных.

...