2011-12-09 77 views
1

我目前正在开发一个Android项目,我们期望我们的应用程序与另外两个应用程序合并,这些应用程序来自不会分享代码的供应商。所以想知道我们有没有办法只包括那里源代码作为JAR文件在我们的项目中,然后包括他们的资源并指向他们(我做过使用getResources()。getIdentifier(“splash”,“layout”,getPackageName())但它仍然不工作? ?我想我已经尝试了所有可能的方法,所以希望你们能帮助我。作为Jar Library的Android项目

+0

我很抱歉如果我正在创建多个线程,但严重需要得到一个快速的响应。谢谢 – srikkanth007

回答

1

this question:

记住,你的包报价CommonsWare老化的类无法引用资源(在 至少不通过R.语法),并且JAR无法打包资源, 清单条目等。如果您试图将JAR注册为纯Java 代码(可能使用Android API),则你应该没问题。

基本上,您只能在应用程序中使用包含纯java的JAR作为库,而不是整个其他项目。

+0

感谢您的答复,但应该有办法。我们在这里呆了很久。 – srikkanth007

+0

可悲的是没有。说实话,这是一件好事,否则你可能只包括其他任何应用程序,并公然撕裂他们的代码/资源。 –

+0

但它在IOS框架上工作。所以我觉得在Android方面也应该有一些东西。 – srikkanth007

0

这些活动可以编译成一个jar文件并添加到主Android项目中,我们需要将他们的项目资源添加到您的项目中。我们唯一能做的就是使用getResources().getIdentifier("splash", "layout", getPackageName())。即使像Widget TextView,Button和所有这些应该使用getResources()方法引用。例如,如果您想对特定按钮执行操作,那么我们需要通过getResources().getIdentifier("Button" /*id in the XML File*/, "id"/*type*/, getPackageName())来识别它们。

还有一件事:您需要使用软件包名称指定主Android项目的AndroidManifest.xml文件中的所有活动。我希望这能解决一些问题。

0

为了支持更快的构建时间,r16工具在Android库项目中创建了自己的jar文件。您可以使用此功能来解决此问题。如果供应商想发布他们的Android库项目,但没有源代码,他们可以制作一个Android库项目的副本,其中包含除源代码树之外的所有内容。接下来,从原始Android Library Porject(r16工具构建的那个)中包含jar文件。这将允许您拥有可以发布的不需要源代码的组件。这个新的Android库项目的使用者需要根据需要手动将任何必要的元数据添加到他们自己项目的AndroidManifest.xml文件中(活动,提供者,权限等)。

相关问题