【短信】谷歌4.4短信在eclipse的编译过程

谷歌4.4短信代码,编出来的Mms.apk无法安装到现在的手机上,提示sdk版本太低。下到eclipse模拟器中看看。

eclipse也编译不过,因为新的应用用了一些android4.4新的接口,所以在4.2eclipse中编译不过。看不到是什么样子。

4.4没有短信改成环聊,环聊是谷歌开发的应用。短信功能集成在环聊中了。环聊有点像微信,但也管理短信。

目前可以在google play下载环聊应用,而且环聊也被内置到4.4中了。并没有内置到代码中,而是在htc或其他海外手机,内置到gms服务中了。而国内是不允许内置gms服务的,所以国内的还是要短信。

编译出来的安装到手机上,显示“INSTALL_FAILED_OLDER_SDK”,修改方法参考 http://blog.csdn.net/elfylin/article/details/6287425 。可以下载到手机,运行了马上就停止。

希望在eclipse上调试。eclipse导入mms代码,参考 http://blog.csdn.net/jingwen3699/article/details/7933700

但还是有错误,提示找不到"android.provider.Telephony",后来把telephony-common_intermediates目录下的文件加进来。

但还是提示错误,"com.google.android.mms.xxx"找不到等,于是加了mms-common_intermediates目录下的jar文件。

还是有错。The type java.lang.AutoCloseable cannot be resolved. It is indirectly  referenced from required .class files。去掉这个文件里面的可疑代码。

还是有错,报有些包找不到。加入android-common-chips_intermediates,原来这些库都可以在Android.mk文件中找到。

错误都已经排除。编译过程中遇到Unable to execute dex: Java heap space。参考这个改下 http://blog.csdn.net/murphykwu/article/details/8239902 

后来把Mms底下的libs目录移到其他的目录底下,就ok了。

运行时报错:Installation error: INSTALL_FAILED_VERSION_DOWNGRADE,参考 http://blog.csdn.net/bjstyle/article/details/9944081 ,删掉短信应用。

adb -s emulator-5554 root,adb -s emulator-5554 shell

又报错:Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE,说明短信没删干净。

把eclipse上编译的版本放到手机上运行,先要卸载手机自带的短信应用。

 

Telephony的代码在 frameworks\opt\telephony\src\java\android\provider\Telephony.java

provider的代码在 packages\providers\TelephonyProvider\src\com\android\providers\telephony

其他短信框架的代码在  \frameworks\opt\telephony\src\java\android\telephony

 

参考文章 http://blog.csdn.net/thinkandchange/article/details/8273466 

 

发送短信。

java.lang.NoClassDefFoundError:com.android.common.userhappiness.UserHappinessSignals

先注释掉这一行

java.lang.NoClassDefFoundError: com.android.common.contacts.DataUsageStatUpdater

先注释掉这一行

进入写短信界面,有错误退出,提示 android.view.InflateException: Binary XML file line #26: Error inflating class com.android.mms.ui.RecipientsEditor

造成这个的原因可能是,RecipientsEditor继承自RecipientEditTextView,而MTK没有定义RecipientEditTextView,而是定义了MTKRecipientEditTextView,造成类找不到RecipientsEditor,应该导入MTKRecipientEditTextView,编译MTK的代码,并导入MTK的framework。

找这个手机对应的代码,上版本管理系统,找到AT839项目,svn地址为http://192.168.33.203/svn/repos/mt6582/platform ,再找Hosin版本,分支为 branches/AT839_hosin_mp,所以就找到了代码下载地址,编译命令为 at839[hosin],命令行下输入 ./mk huaqin82_wet_b2d_jb5 at839[hosin] new
导入MTK的lib库之后,MmsWidgetService.java出现了奇怪的错误The type android.view.CompatibilityInfoHolder cannot be resolved. It is indirectly referenced from required .class files,于是先把MmsWidgetService.java去掉。但是其他文件也出现了这种错误。

又去掉WarnOfStorageLimitsActivity.java,去掉之后还是不行,而且找不到错误在哪里了。于是在AndroidManifest文件中去掉了删掉的2个文件。

还是不对,看到Problems页中,提示 The project cannot be built until build path errors are resolved

还有其他文件出现了之前的错误提示。试着把MTK的mk文件中需要的lib都导进来试试。

导进来了,还是出现同样的问题。

最后证明,短信不可以放到eclipse中去编,只能在具体的环境中编。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值