Переименовано приложение для Android .. Проблемы возникают - PullRequest
0 голосов
/ 03 марта 2011

Я переименовал свое приложение для Android (используя eclipse refactor->rename), теперь оно падает до того, как я приступаю к инициализации активности. Вот стек вызовов:

ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2417  
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2512   
ActivityThread.access$2200(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 119 
ActivityThread$H.handleMessage(Message) line: 1863  
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4363    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] [local variables unavailable]    
Method.invoke(Object, Object...) line: 521  
ZygoteInit$MethodAndArgsCaller.run() line: 860  
ZygoteInit.main(String[]) line: 618 
NativeStart.main(String[]) line: not available [native method]  

У меня есть некоторые собственные методы в моем приложении, но они не соответствуют подписи в Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean), поэтому я не уверен, что это актуально. Кроме того, я мог бы представить, что произойдет сбой, когда я попытаюсь вызвать его, если возникнет проблема с нативным методом (по крайней мере, это то, что произошло, когда я их разрабатывал). Я не могу получить точку останова в этом месте, поэтому я не уверен, что происходит или как его отладить. Я предполагаю, что где-то есть файл с загадочной ссылкой на старое имя проекта, но я не могу его найти.

Любая помощь будет оценена.

Ответы [ 3 ]

3 голосов
/ 03 марта 2011

Только что сделав это сам, я столкнулся с похожими (но не совсем такими же проблемами).

Самая большая проблема при выполнении Refactor> Rename заключается в том, что он будет управлять только именованием частей Java вашегокод.Он не будет обновлять какой-либо XML (который есть в Android-приложении).Вам нужно будет выполнить поиск в своем проекте старого имени и вручную переключить его на новое имя.Это включает в себя файлы, такие как AndroidManifest.xml, а также другие (скорее всего, любой файл XML).Кроме того, если вы изменили структуру пакета ваших классов, вам также придется обновить его (хотя в данном случае это не похоже на то, что вы делали).

1 голос
/ 03 марта 2011

Я бы проверил ваши нативные методы, поскольку именование нативных методов обычно зависит от имен классов Java.

Кроме того, вам придется изменить имена в вашем AndroidManifest.xml, чтобы отразить ваши изменения.

В противном случае, вы могли бы опубликовать фактическое сообщение об ошибке, сопровождающее трассировку стека?

0 голосов
/ 04 марта 2011

Это не было переименованием проекта, которое вызвало проблему, и NDK не был виноват - это была дикая погоня, потому что я видел строку «нативный метод» в стеке вызовов.

Проблема заключалась в том, что я также переименовал действие в , и это действительно требовало переименования в манифесте, как вы, ребята, сказали.

Я думаю, что здесь есть урок для рефакторинга слишком много за один раз и слишком поздно ночью! Во всяком случае, проблема решена! Спасибо, ребята, за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...