Не удается переименовать имя пакета Android - PullRequest
11 голосов
/ 24 июня 2011

Я щелкаю правой кнопкой мыши по моему проекту в инструментах eclipse, android, «Переименовать пакет приложений».

Выберите любое имя, и оно не будет выполнено, и вы попадете в журнал ошибок для подробностей.

Там я нахожу следующее:

eclipse.buildId=M20110210-1200
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=nl_BE
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

Ошибка Пт 24 июня 10:11:31 CEST 2011 Внутренняя ошибка

java.lang.reflect.InvocationTargetException
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:91)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: org.eclipse.core.internal.resources.ResourceException: An error occurred while traversing resources.
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:83)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:110)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:94)
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring.createChange(ApplicationPackageNameRefactoring.java:128)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:124)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
... 1 more
Caused by: java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring.updateJavaFileImports(ApplicationPackageNameRefactoring.java:151)
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring$JavaFileVisitor.visit(ApplicationPackageNameRefactoring.java:427)
at org.eclipse.core.internal.resources.Resource$2.visit(Resource.java:112)
at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:64)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:82)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:127)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:74)
... 7 more
Root exception:
org.eclipse.core.internal.resources.ResourceException(/Touring Mobilis)[566]: java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring.updateJavaFileImports(ApplicationPackageNameRefactoring.java:151)
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring$JavaFileVisitor.visit(ApplicationPackageNameRefactoring.java:427)
at org.eclipse.core.internal.resources.Resource$2.visit(Resource.java:112)
at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:64)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:82)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:127)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:74)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:110)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:94)
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring.createChange(ApplicationPackageNameRefactoring.java:128)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:124)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Этот инструмент работает у кого-нибудь? Если да, пожалуйста, дайте мне знать, какую версию Eclipse вы используете.

Я использую последние версии eclipse (64 бита) на Windows 7 с последним плагином ADT eclipse.

Ответы [ 8 ]

12 голосов
/ 02 апреля 2013

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

Чтобы решить проблему, вам нужно только удалить класс или раскомментировать его.

3 голосов
/ 02 июля 2011

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

1 голос
/ 17 ноября 2011

На самом деле я решил создать свой собственный инструмент переименования пакетов.

На самом деле все очень просто:

Затем я выбираю «не обновлять конфигурации запуска» и обновлять проект eclipse.

Тогда все идет хорошо:).

Это в сочетании с ветвями git и препроцессором антенны помогает мне получить гибкость, необходимую для выполнения многих версий приложения с различными параметрами.

0 голосов
/ 31 июля 2014

ха-ха Причина этой ошибки заключается в следующем:

Caused by: java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.refactorings.renamepackage.ApplicationPackageNameRefactoring.updateJavaFileImports(ApplicationPackageNameRefactoring.java:151).

Итак, вам нужно проверить, не имеет ли один из ваших java-файлов имя пакета.

Например:

//package com.telecom.request.login;
//
//import android.content.Context;
//import android.content.Intent;

Пакет моего java-файла прокомментирован, затем eclipse не может получить имя пакета файла, появляется nullpointer.

Надеюсь, полезно для вас.

0 голосов
/ 14 ноября 2013

Очевидно, что следующий способ может помочь вам переименовать.

1.Право Нажмите на папку gen и переименуйте имя пакета так, как вы хотите. См. Изображение ниже.

enter image description here

2.После переименования выше откройте файл манифеста и измените объявление пакета на то, что вы хотите, но оно должно совпадать с пакетом в папке gen, см. Ниже.

enter image description here

Это должно быть, люди. Счастливое кодирование!

0 голосов
/ 03 ноября 2011

У меня была такая же ошибка по поводу "обхода ресурсов".Я удалил указанную папку (она не использовалась), и после этого я смог провести рефакторинг имени пакета.

0 голосов
/ 24 июня 2011

У меня были похожие проблемы при рефакторинге / переименовании проектов с некоторыми версиями Eclipse. Если вам нужно быстрое исправление , я бы предложил это.

Создайте новое приложение для Android с именем, которым вы хотите его продать, и скопируйте файл исходного кода за файлом в ваше новое приложение. Предупреждение: Не копируйте сами файлы, только код в файлах, так как eclipse имеет некоторые метаданные, связанные с каждым файлом, и это может вызвать ошибки компоновки.

Надеюсь, это поможет.

0 голосов
/ 24 июня 2011

Попробуйте щелкнуть правой кнопкой мыши на пакете и выбрать Refactor-> Rename, у меня все работает нормально, проблем не было. Надеюсь, это поможет.

...