Android Jar库

Jer*_*rds 54 android jar

你如何设置一个项目,可以产生一个可以用于Android的jar库文件?我想在所有项目中创建一个自定义库.

其他几个问题:

  1. 是否需要针对特定​​版本的android sdk进行编译?
  2. 当针对jar库编译android包时,使用代码处理代码所需的类是用主代码编译到apk中还是包含整个jar?
  3. 使用jar而不是直接集成代码需要了解的任何值得注意的优化或陷阱?
  4. 是否必须按照apk需要对jar进行签名?

Mar*_*k B 29

您需要对项目设置做一些特殊操作,以创建可在Android应用程序中运行的jar文件.只需在Eclipse中创建一个普通的Java项目.

  1. 它根本不需要针对Android进行编译.您可以包含任何jar文件,只要它不引用Android中未包含的类.只需将您的jar文件包含在Eclipse中Android项目的构建路径中,它将自动包含在您的APK文件中.

  2. 不确定,但我认为jar文件中的所有类都包含在APK中.

  3. 我不认为只是在jar中包含一些类而不是在项目中直接将在结果APK中产生任何差异.

  • 4. JAR不需要签名. (9认同)
  • 您只能在jar中拥有Java类文件.您不能在其中放置自定义布局XML.你必须将它们复制到你的项目中. (3认同)

ddc*_*ver 29

谷歌刚刚发布了一个处理共享库的新版SDK!

https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

ADT 0.9.7(2010年5月)

库项目:
ADT插件现在支持在开发期间使用库项目,该功能允许您将共享的Android应用程序代码和资源存储在单独的开发项目中.然后,您可以从其他Android项目引用库项目,并且在构建时,工具将共享代码和资源编译为依赖应用程序的一部分.有关此功能的更多信息,请参阅"使用ADT开发Eclipse"文档.如果您不是在Eclipse中开发,SDK Tools r6通过Ant构建系统提供了等效的库项目支持.

  • ADT 0.9.7获得了我们想要的80%,但它仍然有这些缺点:(1)库项目不能保存.aidl文件,(2)库项目不能依赖于另一个库项目,(3)库项目无法持有资产 (7认同)

And*_*tha 5

我向myselft询问了同样的问题:我可以在Android中导出和重用布局吗?我尝试了以下操作:将具有XML资源的项目导出到JAR文件,然后尝试通过它的R.layout访问布局.当然它不起作用,因为R.layout.main是一个整数,与在主机项目的R.layout中定义的单个布局(relative.xml)相关联的整数相同.

Android SDK将布局xml文件编译为View资源,并且由于包含的JAR文件中的XML文件不是布局xml文件,因此它们不会被编译,并且在R.layout中没有ID与它们相关联.

如果要从项目中导出布局,则应将其导出为XML,并将其作为布局资源导入新项目,而不是作为外部库的一部分导入.

如果要重用JAR中的布局,则必须创建View的子查询,并从代码构建布局.您可以实例化它并将创建的实例设置为活动视图,或将实例添加到您的活动视图中.


小智 5

这项工作对我来说!!! 如果你想从一个库项目中将.jar文件用于你的应用程序,该库项目使用attrs.xml生成R.java的资源(并假设其他类似布局,字符串等).你应该在eclipse中去export->Java/Jar file->检查导出所有输出文件夹以进行检查projects -> Finish...这将确保在运行时使用此jar的应用程序不会为缺少的clases和资源生成异常.

当然,要将jar包含在你的新项目中去.project properties-> Java build path -> Libraries -> Add external jar ->你完成了

希望这有帮助!