一个小问题,调试了很长时间,才找到问题。
主要是MANIFEST.MF的生成上,这个文件是要放在META-INFO目录下的,采用ICSharpCode.SharpZipLib进行压缩,正确的代码如下:
void ZipManifest(ZipOutputStream s)//角摩手机乐园http://www.joymo.cn{
byte[] utf8s;
utf8s = Encoding.UTF8.GetBytes(_Manifest.Replace("$$$",_Pro.BookName).ToCharArray());
ZipEntry entry = new ZipEntry("META-INF/MANIFEST.MF");
//entry.DateTime = DateTime.Now;
entry.Size = utf8s.Length;
s.PutNextEntry(entry);
s.Write(utf8s, 0, utf8s.Length);
s.Flush();
s.CloseEntry();
}
注意红色的部分,开始的写法是:META-INF\\MANIFEST.MF,生成的jar能正常用RAR和ZIP打开,但在手机上无法安装,改成上面的代码后,安装正常。