findViewById在jar中返回null

时间:2013-09-09 14:10:13

标签: java android eclipse

我有一小段代码可以在自己的项目中正常工作(它只是一个文件选择对话框)。我想在我的大项目中使用它,所以我通过执行以下操作将FileSelector导出为jar:

  • 右键单击FileSelector项目,然后单击“导出”

  • 选择Java - > JAR文件

  • 设置'导出目的地'

  • 点击“完成”

  • 将导出的.jar文件复制到MyProject / libs

  • 右键单击MyProject - >刷新

  • 右键单击MyProject - >属性

  • 点击“Java Build Path”

  • 在“库”选项卡中,单击“添加JAR”并选择刚刚复制到MyProject中的.jar文件

我收到错误“生成最终存档时出错:找到APK的重复文件:AndroidManifest.xml”,所以我只是从文件列表中取消选择AndroidManifest.xml导出到jar并再次创建它。

MyProject似乎构建正常,但是当我运行它并单击应该显示文件选择对话框的按钮时,我得到一个空指针异常。我回去并在FileSelection代码中跟踪它,这是一个简单的

mFilterSpinner = (Spinner) mDialog.findViewById(R.id.fileFilter);

返回null。有没有我在项目设置中没有做过的事情,允许像这样的调用在jar内部工作?或者我打包和导入jar的程序有问题吗?

2 个答案:

答案 0 :(得分:1)

R类中的值将被修改。因此,在Jar中使用已编译的R时,您无法找到您的视图。

唯一的解决方案是通过它使用android库项目和参考资源及来源。否则,您可以通过将您的android库项目转换为AAR存档来引用它。

答案 1 :(得分:0)

如果您使用的是Android UI组件,我认为您应该将其作为Android库在另一个项目中使用。