我们写程序的时候往往需要把自己的程序打包成jar包,给第三方调用。Eclipse让我们非常方便的可以导出jar包。但是当程序里需要用到res里的资源时,往往就会出现问题。因为统自动生成的R类如果被打到jar包中后,就失去了索引资源的作用。导致封装成jar包的view无法获取对应资源。因为R类的属性值是在应用编译打包时由系统自动分配的。R类打包之后失效,实际是因为R类的内部类里面的属性失效,因为打包之后这些属性的值就固定了,但是实际项目中这些值是在编译时有系统自动分配的,无法在编译前固定。 本文就提供一种方法,解决这个问题。 首先建立一个AndroidJar项目。这个项目将来就是要打成jar包的项目。 结构如下: 然后再建立一个AndroidJarTest项目。这个项目就是应用jar包的项目。 AndroidJar写好后,就是导出jar包。相信大家都非常熟悉,步骤如下: 1.选中AndroidJar,右键选择export。 2.选择jar file。只需导出源码。如图: 1.然后点击finish。就可以导出jar包了。 AndroidJarTest项目对jar包的应用方法。 1.在AndroidJarTest项目下建立一个libs文件夹,再把刚才导出的jar包放到里面。再把jar包加到java build path的路径里。 2.因为刚才只是把AndroidJar的源码打成了jar包。但是资源并没有打包。所以现在要把AndroidJar项目里的资源。拷贝到AndroidJarTest的项目下。具体就是res下的文件。因为太简单,这里就不演示怎么拷了。 2.最后要在AndroidJarTest的AndroidManifest.xml里注册AndroidJar里的activity,service,receiver。很多广告插件都是这么做的。相信大家都非常熟悉。 [Java] 纯文本查看 复制代码
在AndroidJarTest里就只要一个其他的activity。它负责跳转到AndroidJar里。AndroidJar里就三个按钮分别是启动一个服务,每隔10秒就发出一个广播,然后广播接收到后就弹出一个toast,“大家好,我是苍老师!”和一个停止服务。最下面一个就是跳到一个有苍老师的界面。 程序相当简单。其中根据资源创建view,和根据资源找到相应字符的核心类为ResManager。大家可以下载源码,研究研究。 <ignore_js_op> 该贴已经同步到 feathersong的微博 |
<ignore_js_op>