原来以为要自己手动导出jar,然后再引用,后来发现eclipse本身已经自带了这个功能,只要我们在功能属性中直接进行引用即可。Project->Properties->Android,右下角有个Library选项,我们只需要Add我们要包含的工程即可,这里当然IDE只会提示那些作为Library的工程的名称,因此我们还要对另一个工程做点小小的工作.就是将其设置成Library.具体做法也是刚才那个路径Project->Properties->Android,但是这次我们要在Is Library的地方打勾,那么这个工程就会被认为是要作为library来提供的了!
好了,基本的组合框架已经完成了,下面要进行内容的整合,由于两个项目本来就是独立的APK,因此都会包含有各自的资源文件和一些工程相关的文件,这里我们只需要对Manifest.xml中的内容进行移植即可,里面的一些程序相关的部件声明,我们需要将其整合到我们的目标工程里,具体做法当然只能是copy,modify了。这个我相信你懂的:)最后作为Library里manifest文件里看到的manifest就会只剩这个框框了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.avtest">
<application/>
</manifest>
就这样我们的工程就完成了:)
这期间的资源整合我看了下,发现是以名称的方式进行整合的,比如两个工程都在Drawable目录下有个叫做icon.png的图片,那么它的做法是,发现这种情况以目标工程的为主,直接忽略掉Library里的那个资源文件。因此我们在开发Library的时候对这些资源的命名最好有一套自己的规则,以防止重名!
not well-formed (invalid token)的错误,这个问题也困扰了一段时间,虽然知道应该是文件格式的问题,但是当我把两个工程的字符编码都设置成UTF-8后还是不行,最后才知道,原来还要在Window->preference->workspace->text file encodeing里进行设置。终于大功告成了!