Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android和Eclipse将现有应用程序复制到新项目中创建了一个有趣的R*_Java_Android - Fatal编程技术网

Java Android和Eclipse将现有应用程序复制到新项目中创建了一个有趣的R*

Java Android和Eclipse将现有应用程序复制到新项目中创建了一个有趣的R*,java,android,Java,Android,我正在尝试创建我编写的应用程序的试用版。我复制了我的主项目,然后用新名称将其粘贴为新项目。然后,我对我的活动进行重构,然后修复由此产生的任何错误。项目完成后,我试着运行这个应用程序 当我尝试在emulator上运行试用版应用程序时,如果我通过编程访问“R*”,我的应用程序将找不到它的任何资源、绘图、样式等。如果我的应用程序启动了一个硬编码样式的活动,那么除了缺少可绘制的内容外,它工作正常 此外,我不确定资源是如何映射的,但当我打开为每个项目生成的R.java时,它们是相同的!我的试用版应用程序抛

我正在尝试创建我编写的应用程序的试用版。我复制了我的主项目,然后用新名称将其粘贴为新项目。然后,我对我的活动进行重构,然后修复由此产生的任何错误。项目完成后,我试着运行这个应用程序

当我尝试在emulator上运行试用版应用程序时,如果我通过编程访问“R*”,我的应用程序将找不到它的任何资源、绘图、样式等。如果我的应用程序启动了一个硬编码样式的活动,那么除了缺少可绘制的内容外,它工作正常

此外,我不确定资源是如何映射的,但当我打开为每个项目生成的R.java时,它们是相同的!我的试用版应用程序抛出的错误表示“找不到xyz的资源”,异常显示的id与生成的R.java中的id不同

有人知道我该怎么做吗

谢谢

*加成**
所以我忘了提到我的目标是安卓1.5API版本3。我刚刚将目标版本更新为4,一切正常。。。我希望目标是1.5。。。有人经历过这种情况吗?谢谢。

查看gen/文件夹,看看生成了什么包R.java。代码中对R.java中任何内容的所有引用都必须显式或隐式地指向其实际的当前包名

如果在您想要的包中没有生成R.java,那么说服eclipse移动它可能会很棘手。似乎有效的方法是制作主java源文件的副本,并将其重命名/重新定位为您希望R.java包含的包名,然后删除原始文件


再加上一个项目的清理和重建,应该可以让事情再次正常进行。

查看gen/文件夹,看看在哪个包中生成了R.java。代码中对R.java中任何内容的所有引用都必须显式或隐式地指向其实际的当前包名

如果在您想要的包中没有生成R.java,那么说服eclipse移动它可能会很棘手。似乎有效的方法是制作主java源文件的副本,并将其重命名/重新定位为您希望R.java包含的包名,然后删除原始文件


再加上一个项目的清理和重建,应该可以让事情重新运转起来。

对我来说,这是我找到的最好的工作解决方案:


似乎您首先必须仅更改清单中的包名,然后使用refactor更改主包名,最后在清单中重命名应用程序名。

对我来说,这是我找到的最佳工作解决方案:


似乎您首先必须只更改清单中的包名,然后使用refactor更改主包名,最后在清单中重命名应用程序名。

您清理了新项目吗是的,我使用eclipse清理了它。我删除了gen和bin文件夹。这是一个非常随机的想法,但是如果你将目标版本设置回原来的版本,会不会再次破坏它?我想知道的是,更改版本的行为是否解决了您的问题,而不是您将其更改为的版本。更改版本会再次破坏它。Eclipse的此功能确实会使您的项目死机…您是否清理了新项目是的,我使用Eclipse清理了它。我删除了gen和bin文件夹。这是一个非常随机的想法,但是如果你将目标版本设置回原来的版本,会不会再次破坏它?我想知道的是,更改版本的行为是否解决了您的问题,而不是您将其更改为的版本。更改版本会再次破坏它。Eclipse的此功能确实会使您的项目死机……因此,R将生成到正确的包命名空间中。似乎是R的内容不正确。所有来源都指向正确的R,即由Android生成的R。在我的例子中,这不是正确的答案,这应该会帮助大多数人,因为这是给大多数其他人的建议。谢谢克里斯试图帮助我。我最终不支持android 1.5,现在我的应用程序支持1.6+,所以R被生成到正确的包名称空间中。似乎是R的内容不正确。所有来源都指向正确的R,即由Android生成的R。在我的例子中,这不是正确的答案,这应该会帮助大多数人,因为这是给大多数其他人的建议。谢谢克里斯试图帮助我。我最终不支持android 1.5,现在我的应用程序支持1.6+。