cm13 编译过程中遇到的几个问题及解决方法

在尝试编译一个cm13的rom刷到小米3W上,编译过程中遇到一些问题,在这里记录一下解决方法。

问题一

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:get (default-cli) on project standalone-pom: Couldn't download artifact: Could not transfer artifact org.cyanogenmod:gello:apk:40 from/to central (https://maven.cyanogenmod.org/artifactory/gello_prebuilds): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
[ERROR] org.cyanogenmod:gello:apk:40
[ERROR] 
[ERROR] from the specified remote repositories:
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false),
[ERROR] central (https://maven.cyanogenmod.org/artifactory/gello_prebuilds, releases=true, snapshots=true)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
  • 问题分析
    问题是由于请求不到maven.cyanogenmod.org的证书,导致无法正常下载Gello的apk包。gello是cm自己定制的一个浏览器程序。前段时间CyanogenMod关闭的原有的域名服务器,启用新的域名lineageos.org,但是maven.lineageos.org并不能访问。尝试了网上很多人提到的挂代理, 或者手动下载证书的方式,都不能用。
  • 解决方法
    法1:
    可以跳过gello的编译,gello编译的mk文件位置在源码的
vendor/cm/gello/

直接在源码根路径下执行

mv vendor/cm/gello/Android.mk vendor/cm/gello/Android.mk.bak

再进行编译,就没有报错了,不过这样会导致的一个问题就是新的rom里面没有gello浏览器。
法2:
参考新的LineageOS源码中gello的mk文件,写一个新的mk

https://github.com/LineageOS/android_vendor_cm/blob/cm-14.1/gello/Android.mk

问题二

make: * No rule to make target /home/pavle/android/dirty/out/target/product/cancro/obj/lib/libtime_genoff.so', needed by/home/pavle/android/dirty/out/target/product/cancro/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/LINKED/libandroid_runtime.so'. Stop. make: * Waiting for unfinished jobs....
  • 问题分析
    在进行Extract proprietary blobs的操作时,proprietary-files.txt里是有这个libtime_genoff.so的,所以这里不需要再进行编译操作。
  • 解决方法
    拷贝libtime_genoff.so到out/target/product/cancro/obj/lib路径下,重新编译即可。

问题三

JarJar: /home/buildbot/android/out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes-jarjar.jar
/home/buildbot/android/out/host/linux-x86/bin/jack-admin: line 27: USER: unbound variable
make: *** [/home/buildbot/android/out/host/linux-x86/framework/jack.jar] Error 1
make: *** Deleting file `/home/buildbot/android/out/host/linux-x86/framework/jack.jar'
make: *** Waiting for unfinished jobs....

这个问题是由于在docker环境下,没有设置USER环境变量。

  • 解决方法
export USER=$(whoami)

参考:
Android building no rule to make lib
docker编译android-6.0.0_r25

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值