android 4.2.1 编译到最后不能打包是怎么回事

时间:2022-05-13 03:46:59
Install system fs image: /home/root/ParanoidAndroid/out/target/product/rider/system.img
/home/root/ParanoidAndroid/out/target/product/rider/system.img+/home/root/ParanoidAndroid/out/target/product/rider/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=856422336 blocksize=270336 total=253639929 reserve=8650752
Package target files: /home/root/ParanoidAndroid/out/target/product/rider/obj/PACKAGING/target_files_intermediates/pa_rider-target_files-eng.root.zip
Package OTA: /home/root/ParanoidAndroid/out/target/product/rider/pa_rider-ota-eng.root.zip
./build/tools/releasetools/ota_from_target_files -v \
   -p /home/root/ParanoidAndroid/out/host/linux-x86 \
   -k build/target/product/security/testkey \
       --backup= \
   /home/root/ParanoidAndroid/out/target/product/rider/obj/PACKAGING/target_files_intermediates/pa_rider-target_files-eng.root.zip /home/root/ParanoidAndroid/out/target/product/rider/pa_rider-ota-eng.root.zip
unzipping target target-files...
  running:  unzip -o -q /home/root/ParanoidAndroid/out/target/product/rider/obj/PACKAGING/target_files_intermediates/pa_rider-target_files-eng.root.zip -d /tmp/targetfiles-8t6s5U
Traceback (most recent call last):
  File "./build/tools/releasetools/ota_from_target_files", line 839, in <module>
    main(sys.argv[1:])
  File "./build/tools/releasetools/ota_from_target_files", line 791, in main
    OPTIONS.info_dict = common.LoadInfoDict(input_zip)
  File "/home/root/ParanoidAndroid/build/tools/releasetools/common.py", line 146, in LoadInfoDict
    d["build.prop"] = LoadBuildProp(zip)
  File "/home/root/ParanoidAndroid/build/tools/releasetools/common.py", line 160, in LoadBuildProp
    name, value = line.split("=", 1)
ValueError: need more than 1 value to unpack
make: *** [/home/root/ParanoidAndroid/out/target/product/rider/pa_rider-ota-eng.root.zip] 错误 1
root@ubuntu:~/ParanoidAndroid# make otapackage -j8


本人新手,编译到最后出现这个错误,CM的源码编译没有这个现象,请问各路神仙看看这是个什么情况。网上搜了一通说是什么 python 参数错误。难道是源码的BUG吗?源码我没有修改过啊.

4 个解决方案

#1


不知道你用的这个源码是哪个公司的?
你现在是编译出现错误还是打包出现的错误?
如果是全志的话
你编译完了,打包直接在文件系统文件夹中用命令:pack
如果是编译错误的话,可能是因为你的命令出错了
你进入文件系统中,试试
source ./build/ensetup.sh  ;
lunch    ???           ???-->你要编译的产品
extract-bsp
make  -j4            第一次编译还是开的线程少点比较好,因为在编译target那一块比较耗费内存!

祝你好运!

#2


我也遇到了同样的问题,我是在制作差异包的时候遇到的问题:
ybk@server01:~/work/Wz_4-2-2_r1_sync$ ./build/tools/releasetools/ota_from_target_files  -v -i ./out/target/product/rk30sdk/rk30sdk-ota-eng-old.ybk.zip -p out/host/linux-x86 -k build/target/product/security/testkey ./out/target/product/rk30sdk/rk30sdk-ota-eng.ybk.zip ./out/target/product/rk30sdk/rk30sdk-ota-eng-diff.ybk.zip
unzipping target target-files...
  running:  unzip -o -q ./out/target/product/rk30sdk/rk30sdk-ota-eng.ybk.zip -d /tmp/targetfiles-EWuxZN
Traceback (most recent call last):
  File "./build/tools/releasetools/ota_from_target_files", line 840, in <module>
    main(sys.argv[1:])
  File "./build/tools/releasetools/ota_from_target_files", line 792, in main
    OPTIONS.info_dict = common.LoadInfoDict(input_zip)
  File "/home/ybk/work/Wz_4-2-2_r1_sync/build/tools/releasetools/common.py", line 111, in LoadInfoDict
    raise ValueError("can't find recovery API version in input target-files")
ValueError: can't find recovery API version in input target-files
ybk@server01:~/work/Wz_4-2-2_r1_sync$ 

Android版本是4.2.2_r1,估计要去看那个脚本了,小研究一下再说。

#3


请问这个问题咋解决的啊

 File "/home/ybk/work/Wz_4-2-2_r1_sync/build/tools/releasetools/common.py", line 111, in LoadInfoDict
    raise ValueError("can't find recovery API version in input target-files")
ValueError: can't find recovery API version in input target-files

#4


回复一下我的问题解决方法吧,虽然犯的错误很低级,我犯的是0号错误,其它是收集的:
(清晰版见这里:http://blog.csdn.net/kangear/article/details/23831431)
ValueError: can't find recovery API version in input target-files
0.找错误地方了注意包的路径(这个叫目标包/中间包但绝对不是完整升级包)
out/target/product/rk30sdk/obj/PACKAGING/target_files_intermediates/rk30sdk-target_files-eng-old.$USER.zip
1.内存设置过大
http://micode.net/thread-371-1-1.html
试试更改 toos/releasetools/common.py文件找到
cmd = ["java", "-Xmx4096m", "-jar",
os.path.join(OPTIONS.search_path, "signapk.jar")]
把4096改为比你内存小的数值和升级SDK
源码版本太老
https://github.com/MiCode/patchrom/issues/33
Thank you, really is a problem with my environment, or a year ago, my android sdk version updated yesterday sdk problem solving
Apk名字中有空格
http://blog.csdn.net/npjocj/article/details/9465213

#1


不知道你用的这个源码是哪个公司的?
你现在是编译出现错误还是打包出现的错误?
如果是全志的话
你编译完了,打包直接在文件系统文件夹中用命令:pack
如果是编译错误的话,可能是因为你的命令出错了
你进入文件系统中,试试
source ./build/ensetup.sh  ;
lunch    ???           ???-->你要编译的产品
extract-bsp
make  -j4            第一次编译还是开的线程少点比较好,因为在编译target那一块比较耗费内存!

祝你好运!

#2


我也遇到了同样的问题,我是在制作差异包的时候遇到的问题:
ybk@server01:~/work/Wz_4-2-2_r1_sync$ ./build/tools/releasetools/ota_from_target_files  -v -i ./out/target/product/rk30sdk/rk30sdk-ota-eng-old.ybk.zip -p out/host/linux-x86 -k build/target/product/security/testkey ./out/target/product/rk30sdk/rk30sdk-ota-eng.ybk.zip ./out/target/product/rk30sdk/rk30sdk-ota-eng-diff.ybk.zip
unzipping target target-files...
  running:  unzip -o -q ./out/target/product/rk30sdk/rk30sdk-ota-eng.ybk.zip -d /tmp/targetfiles-EWuxZN
Traceback (most recent call last):
  File "./build/tools/releasetools/ota_from_target_files", line 840, in <module>
    main(sys.argv[1:])
  File "./build/tools/releasetools/ota_from_target_files", line 792, in main
    OPTIONS.info_dict = common.LoadInfoDict(input_zip)
  File "/home/ybk/work/Wz_4-2-2_r1_sync/build/tools/releasetools/common.py", line 111, in LoadInfoDict
    raise ValueError("can't find recovery API version in input target-files")
ValueError: can't find recovery API version in input target-files
ybk@server01:~/work/Wz_4-2-2_r1_sync$ 

Android版本是4.2.2_r1,估计要去看那个脚本了,小研究一下再说。

#3


请问这个问题咋解决的啊

 File "/home/ybk/work/Wz_4-2-2_r1_sync/build/tools/releasetools/common.py", line 111, in LoadInfoDict
    raise ValueError("can't find recovery API version in input target-files")
ValueError: can't find recovery API version in input target-files

#4


回复一下我的问题解决方法吧,虽然犯的错误很低级,我犯的是0号错误,其它是收集的:
(清晰版见这里:http://blog.csdn.net/kangear/article/details/23831431)
ValueError: can't find recovery API version in input target-files
0.找错误地方了注意包的路径(这个叫目标包/中间包但绝对不是完整升级包)
out/target/product/rk30sdk/obj/PACKAGING/target_files_intermediates/rk30sdk-target_files-eng-old.$USER.zip
1.内存设置过大
http://micode.net/thread-371-1-1.html
试试更改 toos/releasetools/common.py文件找到
cmd = ["java", "-Xmx4096m", "-jar",
os.path.join(OPTIONS.search_path, "signapk.jar")]
把4096改为比你内存小的数值和升级SDK
源码版本太老
https://github.com/MiCode/patchrom/issues/33
Thank you, really is a problem with my environment, or a year ago, my android sdk version updated yesterday sdk problem solving
Apk名字中有空格
http://blog.csdn.net/npjocj/article/details/9465213