android 4.1.2系统 phone 导入eclipse编译

写下备忘


1.获取应用源代码

  a)下载源代码 从源代码中提取phon app

  b)可以从 https://android.googlesource.com/(需要翻墙)


2.导入源代码到eclips中

3.导入工程后添加系统的class.jar。

文件位置在android 源代码编译完成后的/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

       下载class.jar

遇到的报错问题

    导入上提到的class.jar中的包后。还会报几个错误:

    1. CallNotifier.java等几个文件 报错。EventLog.writeEvent(EventLogTags.PHONE_UI_RINGER_QUERY_ELAPSED);中的EventLogTags编译不过,起初从源代码中找到EventLogTags,在工程中新建一个android.util包把EventLogTags放入,发现还是编译不过。查看代码发现EventLogTags并没有PHONE_UI_RINGER_QUERY_ELAPSED等常量。后来发现其实引入的EventLogTags是android早期版本(android2.3.4)中的文件,并且在com.android.phone包下面。无奈只能重新下载一个com.android.phone.EventLogTags.java 下载位置:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/2.3.4_r1/com/android/phone/EventLogTags.java

下载的这个EventLogTags.java也依赖前面提到的android.util.EventLogTags

     这时候EventLogTags相关报错已经解决了,但是还没完,下面还有一个INetworkQueryServiceCallback.aidl文件报错。


  2.INetworkQueryServiceCallback.aidl文件报错

   报错位置在 import com.android.internal.telephony.OperatorInfo;告知无法引入OperatorInfo类。

   后来采用 EventLogTags同样的方法在Phone工程下创建一个com.android.internal.telephony包,从源代码中将 OperatorInfo文件找出并放在改包下。本以为万事大吉,但是不幸的是依然报错,报错的位置依然那这行。后来找了下发现一个同志的一篇文章对这个问题解释的很详细 

    http://blog.csdn.net/ghd2000/article/details/6082339

按照这个文章的提示在com.android.internal.telephony包下面 创建 OperatorInfo.aidl。文件内容为:

package com.android.internal.telephony;
parcelable OperatorInfo;


 ok,INetworkQueryServiceCallback终于不报错了


     3.不要高兴的太早,还有一个报错。那就是SipSettings.java文件中的一行log  

Log.v(TAG, "addPreferenceFor profile uri" + p.getUri());无打紧,我直接干掉了。

     

    这下整个工程终于不报错了,接下来就的苦逼的修改源代码............................................





  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值