2013-03-11 222 views

回答

1

Android资源文件(在您的R.java文件中表示)不能放入罐子里。这就是为什么像ActionBarSherlock这样的库需要被打开为库项目而不是简单的Jars。

0

你可以建立Android库项目到jar,但是在库项目中你应该防止使用R类,而不是R类,你可以使用反射来加载资源。

例如,如果你需要从strings.xml档案

int id = context.getResources().getIdentifier("string_name", "string", context.getPackageName()); 
String value = context.getString(id); 

加载字符串但是这是他们提及则getIdentifier方法是什么:

Note: use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name. 
+0

谢谢,我知道评判,但如果我的项目比较大,我会改变我的代码,这是非常困难的。 – jake 2013-03-11 03:04:05

+0

哦!那么唯一的选择是将您的项目用作库项目。 :( – 2013-03-11 03:17:05

0

您可以构建Android项目以jar文件,但不要使用任何资源文件。 B'coz当您尝试在运行时在您的应用程序中使用该jar文件时,Resource Not Found将发生异常。

所以在创建jar文件,请选中资源,根,清单等 你可以定义你的基本活动类,基本接口,数据库管理器,GPS经理 库中的项目,并在我们的应用程序将使用它肯定会工作。

所以看下面的屏幕截图。

enter image description here

感谢

+0

谢谢,现在我已经有一个可以独立运行的项目了,其他项目会使用该项目或包含该项目,所以我想将项目导出为jar。但是这两个项目的R文件具有相同的ID像 项目有公共静态final int activity_main = 0x7f030000; B项目有公共静态final int activity_main = 0x7f030000; – jake 2013-03-11 03:12:00

+0

@jake不要在您的库项目中使用任何资源,如可绘制,布局等。主项目B'coz R.java冲突发生在库和你的主项目之间,因此避免在库项目中使用Resources来克服R.java冲突的问题。 – 2013-03-11 04:47:11

相关问题