当前位置: 代码迷 >> Android >> (转)将 \packages\apps 停的 android 源码导入Eclipse编译的方法
  详细解决方案

(转)将 \packages\apps 停的 android 源码导入Eclipse编译的方法

热度:240   发布时间:2016-05-01 18:53:10.0
(转)将 \packages\apps 下的 android 源码导入Eclipse编译的方法

学习android的源码,比如Browser(浏览器)、Mms(彩信/短信)、Phone(电话)、Contacts(联系人)在eclipse里可能会有错误,原因可能有下边几个:

?

1、使用到了未包括在SDK中(公开发布)的API,有两种情况:

? ? a 被 @hide 标注了的类:这 些类是被隐藏起来的,这些类大多都在com.android.internal包下面;

? ? b 一些未包括在SDK中的、Google私有的Api,它们大多都在com.google.android包下面

?

2、使用了一些由framework层声明的aidl接口访问系统服务,然而这些aidl在编译时才会转换成.java源码,因此在SDK环境下编译这些应用时无法访问到它们。

解决方法是:

?

(请注意:out目录 是在完整源码编译环境下(Linux下),执行一次完整编译后的输出目录)

?

?

1、找到那些被隐藏起来的类、它们在以下两个位置:

A、out\target\common\obj\JAVA_LIBRARIES\framework_intermediates/ classes.jar ;

B、out\target\common\obj\JAVA_LIBRARIES\android-common_intermediates\ classes.jar ;

将找到的.jar文件,在Eclipse中作为User Library 添加到 Project 的Librarys依赖中,并将该库的顺序置于Android SDK Library之上。

在 out\target\common\obj\JAVA_LIBRARIES\ 目录下,还有很多其它具体应用相关的jar包,.... ;

?

2、找到那些缺失的、编译时才生成的,.java源文件,它们通常在以下位置:

A、 out\target\common\obj\JAVA_LIBRARIES\XXX _intermediates\src 目录下,XXX是相关模块的名称;

B、out\target\common\obj\APPS\ XXX _intermediates\src 目录下;

将找到的src目录,在Eclipse下,以Link Source的方式,连接到Project 中作为源码的一部分。

?

转自:http://www.iteye.com/topic/1050439

?

  相关解决方案