作为Jar Library的Android项目

时间:2011-12-09 21:40:43

标签: android

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

3 个答案:

答案 0 :(得分:1)

引用this question:

中的CommonsWare
  

请记住,您的打包类无法引用资源(at   至少不通过R.语法),并且JAR无法打包资源,   清单条目等。如果你想要JAR的所有东西都是纯Java   代码(可能使用Android API),那么你应该没问题。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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