android r preview 3 编译问题修复 - Go语言中文社区

android r preview 3 编译问题修复


android 11 的x86 模拟器支持运行arm 应用了,但是官方提供的模拟器不能root,于是想要自己编译userdebug 版本。
没那么顺利,开始编译后立刻报错了。

不关心过程的直接看最后总结

错题提示

错误关键输出

error: external/seccomp-tests/Android.bp:20:13: unrecognized property "arch.mips"
error: external/seccomp-tests/Android.bp:23:15: unrecognized property "arch.mips64"
error: external/linux-kselftest/Android.bp:53:13: unrecognized property "arch.mips"
error: external/linux-kselftest/Android.bp:56:15: unrecognized property "arch.mips64"

截图
在这里插入图片描述
如果你单纯的去这两支文件里屏蔽掉相关代码段还会报其他错误。

寻找解决方案

期间看到这问朋友的博客:Android R preview编译失败,看到 build/soong/android 目录下可能有点东西。
那我们去build 目录下找找线索,有个叫Elliott 的老哥貌似有在做相关修改。
在这里插入图片描述
我们去aosp gerrit 上搜他。
在这里插入图片描述
这老哥好像最近专门在搞这个,可以看到已经在master 分支上做了修改。那么我们本地preview 3 的分支是什么情况呢?

查看git log,本地preview 3 分支上这两个目录的上次提交还是在一年前,遂checkout master 分支,把对应的修改拉下来
(上图和下图的时间对不上,那是因为commit 的时间和push 的时间不一样,change id 是一样的)
在这里插入图片描述
build…
在这里插入图片描述


更新编译进度
在这里插入图片描述
fixing…
把这个提交cherry-pick 下来
在这里插入图片描述
building…


更新编译进度
在这里插入图片描述
这里是返回一个布尔值,暴力点的话可以直接强制return true 解决。
正规方法的话,上aosp 上扒提交,简单说就是两个timezone 的更换与更新。但是提交不止这两个。所以我强制改返回值了。
在这里插入图片描述
在这里插入图片描述
building…


成了!
在这里插入图片描述

解法总结

  1. external/linux-kselftest 仓库切换到master 分支,如果master 太新有其他问题就只cherry-pick mips 那条提交;
  2. externl/seccomp-tests 仓库切换到master 分支,如果master 太新有其他问题就只cherry-pick mips 那条提交;
  3. libcore 仓库从master 分支cherr-pick 一个提交修复错误,“Replace jniStrError with strerror_r”;
  4. 强制修改 frameworks/base/core/java/android/timezone/CountryTimeZones.java 中的matchesCpuntryCode 那行 renturn true;
  5. 换个高配电脑,否则可能因内存不足编译终止。
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/aaa111/article/details/105787694
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢