#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’ в другом пакете. Вам нужно убедиться, что инструкции импорта ваших приложений отражают это, иначе они не будут компилироваться. Однако, кроме этого, это не должно вызывать особых проблем.