|
本帖最后由 crossbow_z 于 2011-5-18 12:55 编辑 & q, L+ M+ _. S" N
+ T, L) ]6 V+ M9 b
我一年前不到刷的51的1.4.5 rom6 i0 {, q3 t$ T G) U" N# A
, R$ Z I8 {( z. z0 ]' x
经分析9 E6 A# N; Z- j' v- x
是曾经preware里某程序字符有问题,我装了
- h" Y% r o5 J# P+ a) u而且偏偏还update了Saved Package list. |/ k! d3 A q9 M
而且preware启动的时候最后会读取Saved Package list
( J5 H/ V( z4 N. _9 O; A" ~! ]$ e就导致toLowerCase的错误
! w7 ~% a' o o& m! L! z) g并且即使关掉除了preware的所有源之后更新都不能解决
- k) _! F; @* [ t我个人认为是要删除掉保存过的Saved Package list
, S7 Q3 G0 l! t: [1 D: a但不知的那个东西存在什么路径下8 W4 W0 ]$ T8 v0 Z( ]8 y1 n
# e9 W, U3 e) D) @. H( t$ E |解决过程:
' ~, D d% L5 g7 y
4 _8 W4 N Z" q先使用save/restore备份preware(想看备份的程序列表)' g3 p/ x! {7 w: I; r$ R, Y
在U盘目录下,找到zip压缩包,解压,packageDB是程序列表3 r: Q) a* e, ]; {% F: [- L# u
用SQlite打开这个数据库,大概看看,能看到数据库的结构
9 x# M9 `: { G可用通过这个查看哪个存储的程序有问题
9 p4 p' M0 {5 f! b, `. Y我一怒之下,把所有程序列表全删掉了,只留下最后一个,type是array的那个container- A0 ^$ @& F' Y8 p6 t4 ?7 Q
left为1,right改写为2
. n, Y4 @$ H' `1 e8 l; `3 \( h然后再放回到zip0 X3 d) W9 o+ z/ Y# j V) y$ v
拷贝回saverestore的备份目录,覆盖
2 X/ K' ~, O. [+ E启动saverestore恢复preware,重启5 P- c* I" {% W0 N* w1 l
发现preware依然报错
8 G( l2 `- y$ O5 I- F% ]0 b% f! o
想起来我已经把51book都删掉了,为什么数据库里还有?, C. b% \ M5 S8 z' d+ ~+ j
难道是没法识别?& d$ N$ ?8 I& P- y1 ?# z
unknown列表里还有一个1 T; O0 w. N/ H, h K% _: p6 u
找到能找到的所有源# M" u5 `0 v' Z) O4 m$ t" J+ [
添加" ~4 E$ q; X+ ^: C
然后都更新一下
1 w: X$ {& I9 z2 i4 n" t# [终于可以list everything了5 e$ x! H: j8 u. p( x
saved package list也不会有问题了# h. L2 | Q, E X1 u
这个问题,可以画句号了 |
|