学习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
分享到:
相关推荐
本篇将详细探讨如何使用Eclipse来浏览和分析Android 4.4的源码。 首先,要准备Eclipse IDE,这是Android开发者常用的集成开发环境。为了浏览源码,我们需要安装ADT(Android Developer Tools)插件,它包含了源码...
将Android 4.4源码与Eclipse关联,意味着开发者可以直接在IDE中浏览、搜索和修改源码,这极大地提高了开发效率和学习过程中的直观性。 要将Android源码关联到Eclipse,你需要完成以下步骤: 1. 下载并安装ADT...
3. 在Eclipse中,选择“File” -> “Import” -> “Existing Android Code into Workspace”,然后导航到你克隆的AOSP源码目录下的`packages/apps/Contacts`,这是联系人应用的源码位置。 **编译过程** 1. 在...
本文将详细介绍如何在Eclipse环境下导入Android源码并成功运行。 首先,确保你已经安装了Eclipse IDE以及Android Developer Tools(ADT)插件,这是Android开发的基础工具。ADT提供了对Android项目的特殊支持,包括...
对于部分源码的快速编译,`mm`指令则非常实用,例如在`packages/apps/AlarmClock`目录下执行`mm`,将仅编译该应用的源码。 在Eclipse开发环境中,Android源码编译后的调试工作也非常重要。Eclipse提供了几个关键...
3. `mmm`:编译指定目录下的源码,例如`mmm packages/apps/AlarmClock`将编译AlarmClock应用。 4. `mm`:编译当前目录下的源码,适用于快速迭代和调试。 四、Eclipse与调试工具 在Eclipse环境中,有四个关键视图对...
1. **复制Phone源码**:将`/packages/apps/Phone`目录下的代码拷贝到`~/workspace/Phone`。 2. **创建Eclipse项目**: - 在Eclipse中依次点击`New -> Project.. -> Android Project`。 - 选择`from existing code`...
2. **编译环境**:为了编译Android源码,开发者需要设置一个完整的AOSP(Android Open Source Project)开发环境,包括安装必要的依赖、配置环境变量,并使用repo工具来管理源码仓库。 3. **Java源文件**:描述中...
8. **Apps**:预装的应用程序,如设置、电话、联系人等,位于 `packages/apps` 下,这对于了解系统级应用的实现非常有帮助。 9. **测试用例**:源码中包含了大量测试用例,位于 `tests` 目录,有助于验证功能的正确...
- `git clone git://android.git.kernel.org/platform/packages/apps/Launcher.git` - `cd Launcher` - `git branch` - `git checkout <branch_name> -b <your_branch_name>` - `git pull` 2. **源码编译与...
导入设置到Eclipse 设置路径:cm13.0 / repo / packages / apps / Settings 一,通过Android.mk文件查找依赖库 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_JAVA_LIBRARIES := bouncycastle conscrypt...
Windows下编译.so文件步骤(这里我使用NDK(android-ndk-1.6_r1)加Cygwin 在windows下编译,如果没有请安装, 注:android-ndk-1.6_r1只支持android 1.6或更早版本,所以这里必须将你的android工程的Target设为1.6): ...
3. 使用源码编译:由于普通开发环境无法赋予应用系统权限,因此需要将APP的源代码放入Android源码树的`packages/apps/`目录下,并创建一个`Android.mk`文件,配置编译参数。例如,使用`LOCAL_CERTIFICATE := ...