android 4.1.2系统 phone 导入eclipse编译
2015-09-10 21:21
337 查看
写下备忘
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文件找出并放在改包下。本以为万事大吉,但是不幸的是依然报错,报错的位置依然那这行。后来找了下发现一个同志的一篇文章对这个问题解释的很详细
/article/1992293.html
按照这个文章的提示在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());无打紧,我直接干掉了。
这下整个工程终于不报错了,接下来就的苦逼的修改源代码............................................
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文件找出并放在改包下。本以为万事大吉,但是不幸的是依然报错,报错的位置依然那这行。后来找了下发现一个同志的一篇文章对这个问题解释的很详细
/article/1992293.html
按照这个文章的提示在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());无打紧,我直接干掉了。
这下整个工程终于不报错了,接下来就的苦逼的修改源代码............................................
相关文章推荐
- java虚拟机Class格式与指令
- java中对象的理解
- 解决java.net.SocketException: Too many open files
- Java_jdbc 基础笔记之十二 数据库连接 (beanutils )
- Java编写ArrayBasic制作一个简单的酒店管理系统
- springDi
- spring带来的春天
- java 知识
- Spring Framework 下载链接_现在有空
- Mac OSX OpenFire无法启动,配置Java运行时环境变量
- Spring-MVC开发之全局异常捕获全面解读
- Spring学习笔记-Spring容器中的Bean
- U8Framework4SSH ——开源了一套SSH2(Struts2+Spring+Hibernate)整合框架
- Mac下,在myeclipse中导入jdk和javaEE
- Java 堆和栈的区别
- eclipse sdk安装等
- Eclipse工程迁移到Android studio问题汇总
- eclipse中maven项目交付svn忽略配置文件
- Java代码规范、格式化和checkstyle检查配置文档,eclipse 配置模板
- java.lang.UnsupportedOperationException异常