Java 重命名为android应用程序。。问题随之而来
我重命名了我的android应用程序(使用eclipseJava 重命名为android应用程序。。问题随之而来,java,android,eclipse,android-ndk,Java,Android,Eclipse,Android Ndk,我重命名了我的android应用程序(使用eclipserefactor->rename),现在它在我开始活动初始化之前崩溃了。以下是调用堆栈: ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2417 ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2512
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.invokenactive(Object,Object[],Class,Class[],Class,int,boolean)中的签名不匹配
,所以我不确定这是否相关。此外,如果本机方法出现问题,当我试图调用它时,我会想象它会崩溃(至少,我在开发它们时就是这样)。我无法在这个问题上找到断点,所以我不确定发生了什么或者如何调试它。我想象在某个地方有一个文件对旧项目名称有着神秘的引用,但我找不到它
任何帮助都将不胜感激。我将检查您的本机方法,因为本机方法的命名往往依赖于Java类名 此外,您还必须更改AndroidManifest.xml中的名称以反映您的更改
否则,您能否发布堆栈跟踪附带的实际错误消息?我将检查您的本机方法,因为本机方法的命名往往依赖于Java类名 此外,您还必须更改AndroidManifest.xml中的名称以反映您的更改
否则,您是否可以发布堆栈跟踪附带的实际错误消息?我自己刚刚做了这件事,遇到了类似的问题(但不是完全相同的问题)
执行Refactor>Rename的最大问题是,它将只管理代码中Java部分的命名。它不会更新任何XML(Android应用程序中有很多XML)。您必须在项目中搜索旧名称,然后手动将其切换到新名称。这包括AndroidManifest.xml等文件以及其他文件(很可能是任何xml文件)。此外,如果您更改了类的包结构,那么您也必须更新它(尽管在本例中,这似乎不是您所做的)。我自己刚做了这件事,就遇到了类似的问题(但不是完全相同的问题)
执行Refactor>Rename的最大问题是,它将只管理代码中Java部分的命名。它不会更新任何XML(Android应用程序中有很多XML)。您必须在项目中搜索旧名称,然后手动将其切换到新名称。这包括AndroidManifest.xml等文件以及其他文件(很可能是任何xml文件)。此外,如果您更改了类的包结构,那么您也必须更新它(尽管在本例中似乎不是这样做的)。导致问题的不是重命名项目,也不是NDK造成的-这是一场白费力气的追逐,因为我在调用堆栈中看到了字符串“native method” 问题是,我也重命名了活动,并且确实需要在清单中重命名,正如你们所说的 我认为这里有一个教训:一次重构太多,晚上重构太晚!
不管怎样,问题解决了!非常感谢你们抽出时间 导致问题的不是重命名项目,也不是NDK的错——这是徒劳的,因为我在调用堆栈中看到了字符串“native method” 问题是,我也重命名了活动,并且确实需要在清单中重命名,正如你们所说的 我认为这里有一个教训:一次重构太多,晚上重构太晚!
不管怎样,问题解决了!非常感谢你们抽出时间 愚蠢的问题,但您是否检查以确保您的清单文件也已更新?AFAIK refactor->rename不会自动更改清单。感谢编辑Abatishchev:)@Brian:Mine的名为“AndroidManifest.xml”,没有任何项目名称的引用。是否有一个元清单文件在某个地方引用了它?愚蠢的问题,但您是否检查并确保您的清单文件也已更新?AFAIK refactor->rename不会自动更改清单。感谢编辑Abatishchev:)@Brian:Mine的名为“AndroidManifest.xml”,没有任何项目名称的引用。是否有一个元清单文件在某个地方引用了它?这是完整的堆栈跟踪。我注意到一些奇怪的事情——应用程序的旧名称仍然位于跟踪的顶部,尽管我特别右键单击并用新名称调试了应用程序。有东西保留了对旧名称的引用,但我看不出是什么。
TimApp-Android2.1[Android应用程序]DalvikVM[localhost:8602]Thread[main](挂起(异常运行时异常))ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2417 ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2512 ActivityThread.access$2200(ActivityThread,ActivityThread$ActivityRecord,Intent)行:119 ActivityThread$H.handleMessage(Message)行:1863 ActivityThread$H(Handler)。dispatchMessage(Message)行:99
是否更改了AndroidManifest.xml文件中的名称?Looper.loop()行:123 ActivityThread.main(String[])行:4363方法。invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[native Method]方法。invoke(Object,Object…)行:521 ZygoteInit$MethodAndArgsCaller.run()行:860 ZygoteInit.main(String[])行:618 nativestar.main(String[])行:不可用[native method
很抱歉代码垃圾,试图将整个堆栈放在那里,但没有挂起标记:(AndroidManifest.xml文件中没有对旧的或新的项目名称的引用,只有对保持不变的包('tim.app')的引用。这是完整的堆栈跟踪。我注意到了一些奇怪的事情,即