Ошибка NullPointerException при запуске измененной версии проекта Android

#android #eclipse #import

#Android #eclipse #импорт

Вопрос:

У меня эта программа для Android работает хорошо, называется TestePHP2 (имя основного класса), пакет com.testedeacesso.www. Он стабилен и работает отлично.

Я клонировал папку этого проекта, чтобы начать разработку ее обновления. Я назвал его TesteTempo01, после импорта его в Eclipse — option «из существующего проекта» (да, я использовал рефрактор для изменения имени класса и проверил «обновить ссылки»). Я изменил основной класс этой программы, как я упоминал ранее, и добавил к нему некоторый код, но я сохранил имя пакета таким же, как и другие классы из программы.

Однако, когда я пытаюсь запустить эту программу, я получаю сообщение об ошибке «не удается найти основное действие». После поиска в моем коде я обнаружил, что в манифесте была ссылка на TestePHP2, которую я раньше не изменял. для справки, это была строка в XML манифеста Android:

 > <activity android:name="com.testedeacesso2.www.TesteTempo01"
>                   android:label="@string/app_name">
  

После этого я продолжаю получать исключение NullPointerException, потому что класс не может найти основной класс! Я просмотрел весь код, но не нашел других ссылок на старый класс. Я что-то забыл? Нужно ли мне изменить что-то еще, чтобы изменить имя этого класса? Или импорт будет работать только с исходными именами классов?

Ответ №1:

Вы сказали, что пакет был ‘com.testedeacesso.www’, но когда вы ссылаетесь на класс, его ‘com.testedeacesso2.www’. Я предполагаю, что у вас проблема со ссылками на класс / пакет.

Комментарии:

1. Вы правы, но теперь, когда вы упомянули об этом, я не менял имя пакета, поэтому com.testedeacesso2.www — правильное имя — как для работающего пакета, так и для этого нового. Одна вещь, которая привлекла мое внимание, заключалась в том, что класс R моей программы находится в совершенно другом пакете — com.testepaginaphp.www. Может ли это как-то повлиять на эту проблему?

2. Абсолютно. Раньше нам приходилось менять имя пакета в приложении. Он генерирует ‘R’ в другом пакете. Вам нужно убедиться, что инструкции импорта ваших приложений отражают это, иначе они не будут компилироваться. Однако, кроме этого, это не должно вызывать особых проблем.