安卓6.0编译遇到的问题

本文记录了在运行makesdk过程中遇到的问题及排查过程。主要表现为程序在加载多个API版本时卡住,并且出现找不到指定文件的错误。通过替换不同版本的jar包等尝试仍未解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行make sdk之后在下面的位置卡住

java -cp prebuilts/tools/common/api-generator/api-generator-22.9.2.jar:prebuilts/tools/common/kxml2-tools/kxml2-2.3.0.jar:prebuilts/tools/common/asm-tools/asm-4.0.jar:prebuilts/tools/common/asm-tools/asm-tree-4.0.jar:prebuilts/devtools/tools/lib/common.jar \
com.android.apigenerator.Main \
--pattern prebuilts/tools/common/api-versions/android-%/android.jar \
--pattern prebuilts/sdk/%/android.jar \
out/host/linux-x86/development/sdk/generated-api-versions.xml
Found API 1 at prebuilts/tools/common/api-versions/android-1/android.jar
Found API 2 at prebuilts/tools/common/api-versions/android-2/android.jar
Found API 3 at prebuilts/tools/common/api-versions/android-3/android.jar
Found API 4 at prebuilts/sdk/4/android.jar
Found API 5 at prebuilts/sdk/5/android.jar
Found API 6 at prebuilts/sdk/6/android.jar
Found API 7 at prebuilts/sdk/7/android.jar
Found API 8 at prebuilts/sdk/8/android.jar
Found API 9 at prebuilts/sdk/9/android.jar
Found API 10 at prebuilts/sdk/10/android.jar
Found API 11 at prebuilts/sdk/11/android.jar
Found API 12 at prebuilts/sdk/12/android.jar
Found API 13 at prebuilts/sdk/13/android.jar
Found API 14 at prebuilts/sdk/14/android.jar
Found API 15 at prebuilts/sdk/15/android.jar
Found API 16 at prebuilts/sdk/16/android.jar
Found API 17 at prebuilts/sdk/17/android.jar
Found API 18 at prebuilts/sdk/18/android.jar
Found API 19 at prebuilts/sdk/19/android.jar
Found API 20 at prebuilts/sdk/20/android.jar
Found API 21 at prebuilts/sdk/21/android.jar
Found API 22 at prebuilts/sdk/22/android.jar
Found API 23 at prebuilts/sdk/23/android.jar

经过排查,最后发现是target sdk中依赖的ATREE_FILES里面调用了android-6.0.0_r11/development/build/Android.mk:138的命令。

尝试注释掉这句命令,继续运行提示如下

development/build/sdk.atree:49: couldn't locate source file: bin/etc1tool
development/build/sdk.atree:54: couldn't locate source file: development/sdk/generated-api-versions.xml
development/build/sdk.atree:88: couldn't locate source file: bin/split-select
development/build/sdk.atree:93: couldn't locate source file: bin/bcc_compat
development/build/sdk.atree:186: couldn't locate source file: framework/layoutlib.jar
development/build/sdk.atree:527: couldn't locate source file: framework/layoutlib-tests.jar
development/build/sdk.atree:528: couldn't locate source file: system/app/EmulatorSmokeTests/EmulatorSmokeTests.apk
build/core/Makefile:1813: recipe for target 'out/host/linux-x86/sdk/full/android-sdk_eng.root_linux-x86.zip' failed
make: *** [out/host/linux-x86/sdk/full/android-sdk_eng.root_linux-x86.zip] Error 44

本机的/bin/etc1tool和/usr/bin/etc1tool都是存在的,回到sdk.atree中看发现指的是ll out/host/linux-x86/bin/目录下的,应该是指的Android系统?

继续尝试

将prebuilts/tools/common/api-generator下的两个api-generator的jar包换成正常可以编译的android-6.0.0_r1版本的jar包(发现两个版本的jar包完全一致)后仍然会卡住,看来不是这个jar包的问题。但输入的三个参数两个是pattern,一个是输出结果,还能是什么错了。。

把所有jar包都换一遍也不行,好气啊。

找到下面网址,似乎是源码。

http://www.javatips.net/api/android-gradle-plugin-master/misc/api-generator/src/main/java/com/android/apigenerator/Main.java

 

如果你也遇到这个问题的话,有任何思路麻烦在留言里分享一下吧。

Any pointer will be helpful. 
Thanks in advance.

 

附:用到的一些链接

https://bbs.archlinux.org/viewtopic.php?id=209698

https://groups.google.com/forum/#!topic/android-building/C-h4nMVyZkY

转载于:https://www.cnblogs.com/yozamber/p/7373204.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值