Android7桌面Launcher3源码移植到eclipse遇到的错误问题

Launcher源码移植到eclipse和Android Studio遇到的平台问题

一. 需求:将高通SC60launcher3源码移植到eclipse和studio上编译生成apk
二. 条件:高通系统源码
Eclipse工具(版本4.5.1,ADT23.0.7)
Studio工具(版本3.2)
三. 导入eclipse操作

  1. File→import→Existing Android Code Into Workspace→导入代码相关目录

在这里插入图片描述
2. 首先肯定是报错的,中心思想是先解决res资源文件错误,在考虑代码里引入的代码错误
在这里插入图片描述

将此文件删除后,clean项目后又有新的错误

在这里插入图片描述
点击发现是android版本引起的,将版本改为6.0以上,有键点击项目,选择Properties,弹框选择Android,选择android版本,我这里最高为6.0(最好用android7.1),选择后apply,ok后,在clean项目,此错误消失。

在这里插入图片描述

发现新的错误,引用不规范,将@id/page_indicator"改为
@+id/page_indicator",在clean项目,此错误消失
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Ctrl+H全局搜索colorSecondary,发现在values/styles中有同样引用给为一致,clean项目,此错误消失。
这个时候发现res资源错误问题初步解决。

3.Src代码错误,先解决项目src_config中引用的代码,移植拷贝到src中

在这里插入图片描述

操作:将src_config/com/android/launcher3文件夹复制到src/com/android/launcher3中,clean项目

在观察android.mk文件,查看引用的资源

在这里插入图片描述

在高通系统代码中找到引用的v4,v7包,由于
v4包在目录:prebuilts\sdk\current\support\v4
v7的palette包目录:prebuilts\sdk\current\support\v7\palette\libs
v7的recycleview包目录: prebuilts\sdk\current\support\v7\recyclerview\libs以及res资源
prebuilts\sdk\current\support\v7\recyclerview\res

直接将android-support-v7-palette.jar放入项目libs文件夹中,
由于recycleview的引用包含res资源,在eclipse中需要以依赖项目的方式引用,
如何创建依赖项目,很简单创建一个android项目,将jar包以及res资源放入项目中
在这里插入图片描述
AndroidManifest.xml包名为android.support.v7.recyclerview




project.properties中添加依赖属性android.library=true
在主工程中Properties→android→Library框中添加依赖项目,然后→apply→ok→在clean 项目

在这里插入图片描述
Mk文件中LOCAL_MODULE := launcher_proto_lib引用的库,在目录out\target\common\obj\JAVA_LIBRARIES\libprotobuf-java-nano_intermediates\javalib.jar
将jar包导入libs文件夹中

在这里插入图片描述

此时clean项目,在观察源码中报错位置

在这里插入图片描述
根据红点提示操作将jre版本改为1.7版本,修改后clean项目

在观察源码中报错位置

在这里插入图片描述
在源码中全局搜索find . -name “LauncherLogProto.java”,找到路径out\target\common\obj\APPS\Launcher3_intermediates\src\proto\src\com\android\launcher3\userevent\nano\LauncherLogProto.java,经文件夹src拷贝到目录中

在这里插入图片描述

修改后clean项目

在观察源码中报错位置

在这里插入图片描述
此路径报错,是因为是调用了framework中代码,全局搜索find . -name "AlphabeticIndex.java"发现在目录中
out\target\common\obj\JAVA_LIBRARIES\android_system_stubs_current_intermediates
有jar包的集成,可以将该jar包引用到项目中
将jar包拷贝到项目中,注意此时不能放入libs文件夹中,由于该jar包的代码与项目的android sdk的代码有重复引用,所以要优先引用frameworks源码的jar包,需要优先引用,
操作:
1.将jar包拷贝到本地目录中,
2.Properties→Java Build Path→选择Libraries→选择Add External JARs…,选择jar包路径→Apply→Order and Export→选中classes.jar包,点击top置顶→Apply→OK
3.clean 项目后,代码初步没有报错。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此时项目已经移植成功,运行项目,在bin文件夹下生成没有签名的apk。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值