eclipse教程 eclipse配合真机来调试android源码方法

时间:2015-05-06629举报小编:admin

    怎么用eclipse配合真机来调试android源码?下面未来小编就带大家一起来看看使用eclipse调试源码的方法,在真机上面进行调试。


    eclipse配合真机来调试android源码教程
    一  前置条件

    1 三星 nexue one 手机一部

    2 笔者用的是cm-ics 也就是android 4.0 的代码

    3 操作系统 ubuntu 13.04

    二 编译过程

    1 首先需要将cm-ics源码编译完成,升成可是刷入到nexue one手机中的rom包,并且使用完美刷机等软件刷入到nexue one手机中,能够正常开机使用。

    关于这个过程,需要看我以前的如何编译 cm代码的博文,里面有详细的介绍最后的升成文件如下图


    2 进入源码目录下的development/ide/eclipse,将.classpath 文件拷贝到

    源码目录,然后再新建一个 .project 文件,文件内容如下

    <?xml version="1.0" encoding="UTF-8"?>

    <projectDescription>

    <name>CMIcs</name>

    <comment>CMIcs Source</comment>

    <projects>

    </projects>

    <buildSpec>

    <buildCommand>

    <name>org.eclipse.jdt.core.javabuilder</name>

    <arguments>

    </arguments>

    </buildCommand>

    </buildSpec>

    <natures>

    <nature>org.eclipse.jdt.core.javanature</nature>

    </natures>

    </projectDescription>

    3  新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。导入时,eclipse要build工程,比较慢。

    这一步一般都会有错误,总结一下,主要有一下几种

    1 源代码里面缺少必要的代码库文件 如图2


    表示缺少相应的源码库,直接报错不编译,解决方法:在.classpath 文件中去掉该目录即可

    2 编译过程中出错

    编译过程中出错多以包名,找不到或者少编译一些文件,如图3


    解决方法:主要到指定目录 mm编译升成缺少的依赖包以后,然后再将目录添加到 .classpath 中去

    比如这个是我在解决编译错误的时候,加入的源码或者lib的目录文件

    <classpathentry kind="src" path="frameworks/base/fmradio/java"/>

    <classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/fmradio/java"/>

    <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/libGoogleAnalyticsV2_intermediates/javalib.jar"/>

    三  调试过程

    通过前面的编译过程,最后编译完成以后就需要进行接收劳动成功,进行调试了。这里跟网络上大多数文章不同的地方是用真机调试。连接上烧入同样版本的nexue one手机后,进入 /adt-bundle-linux-x86_64-20131030/sdk/tools/ 这个目录使用 ./monitor 命令

    出现界面如图4


    这里选中的是 com.android.calendar 就是日历的这个进程

    打开eclipse,这里要在打开 monitor后,然后进行配置

    步骤如下:

    选择你的工程,右键打开菜单选择 Debug AS—Debug configuration 弹出窗口,选择Remote JAVA Application,右键在菜单选择NEW,弹出下面的视图,修改Port为8700

    设置完成后如下图5


    然后点击debug,成功以后出现如图6


    比之图五,多了一个debug 爬虫的图标,表示已经连接成功了

    在应用中找到 日历这个apk点击打开,发现设置的 setContentView断点已经停止了

    如下图


    注意:有时候在远程调试的时候连接会出现错误

    Failed to connect to remote VM

    笔者的解决方法是

    在Preference->General->NetWork Connection->把Active Provider里面的选项,选择为Direct.

    解决该问题,仅做参考。