1.1 在eclipse中编译系统apk
android自带的apk,或者平时我们开发一些系统apk时,经常会发现导入eclipse开发时报一堆错误,无法编译,如图所示:
图中DeviceManager.java 引用了两个系统接口IMountService和ServiceManager,这时直接用下载的SDK包是会提示找不到该两个类的,所以我们要使用我们从代码里编译出来的jar包.
(1)在服务器上编译android,拷出android\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar
(2)右击该android project,弹出菜单选Build Path --> Add Libraries... --> User Library --> next, 如图
(3)点击User Library --> New 新增一个Library,给它命名,并且一定要勾上"System library"(否则装不到板子上),
(4)这样就出现了叫"A31_42_frameworks"的库,点击Add JARs,给该库添加刚才拿出来的那个"classes.jar"的包,添加完如图:
(5)点击"OK " --> Finish -->回到原来的eclipse开发界面,
(6)右击该project--> Build Path --> Configure Build Path --> Order and Export,把之前添加的A31_42_frameworks库up移到原生SDK的前面,编译时优先使用自己新增的库.如图
(7)这样,重新编该apk时,之前的IMountService和ServiceManager类的错误就不再有了.