【这才是正解!】Android 自定义类库打包jar! 谁说不可以打包res 文件?【Eclipse确实不行, 要用AS的aar格式】

好久之前写的, 现在回看, 确实非常抱歉,误导大家了。 这种方法只是用于项目引用, export的jar包是不包括res的。
不过现在大家都用新工具Android Studio, 它的aar格式, 确实包含了res的。

 

======================================

我们经常会有这种需求, 自己开发一个类库jar包, 提供给别人调用。

 

网上很多教程都是这么说:

创建一个Android project, 用eclipse  的export 导出, 去掉AndroidManifest.xml, res 什么的, 全都不是正解!

http://www.cyqdata.com/android/article-detail-37285

 用这种方法总会有这样那样的问题。

 还有这么说,

android jar包是不能导出resource文件的,确实需要的话, 只能放在assert目录下面, 用AssertManager来访问。

 

但是你也知道,android.jar 本身就有res啊, 为什么人家可以?

 

看了官方文档, 我们才知道,不是不可以,是用的方法不对。下面来看看正确的做法是怎么样的。

1.创建一个正常的Android project.

2. 写好你要的代码,res文件(layout, drawable都可以)

3.如果有 Activity, Service, Broadcast Receiver什么的要提供给人家用, 要在AndroidManifest.xml 声明。

4. 关键的来了:在项目属性properties -> Android-> Is Library 勾上!

 

5. 要引用这个项目时,应该在你的项目project 的properties-》android里library 点击Add, 记住, 不是什么Build path!

6.也许你要问, 我要导出jar 怎么办? 简单啊, 当你保存或者Build 你的项目时, 人家已经帮你生成jar了,就在bin目录下面!

 

That is all!

 

最后我想说, 什么教程都是浮云, 最终还是要以官方文档为准:

http://developer.android.com/guide/developing/projects/projects-eclipse.html#ReferencingLibraryProject

 

posted @ 2012-02-18 15:36 Stanley.Luo 阅读(...) 评论(...) 编辑 收藏