alibaba / AndFix

AndFix is a library that offer hot-fix for Android App.
Other
6.97k stars 1.6k forks source link

java.util.zip.ZipException: File too short to be a zip file #50

Open Rowandjj opened 9 years ago

Rowandjj commented 9 years ago

出现这个异常,好像是patch包太小了? java.util.zip.ZipException: File too short to be a zip file: 0 10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.zip.ZipFile.readCentralDir(ZipFile.java:376) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.zip.ZipFile.(ZipFile.java:163) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:199) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:182) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:168) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.Patch.init(Patch.java:75) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.Patch.(Patch.java:67) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:126) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:112) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:105) 10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.taobao.andfixtest.MyApp.onCreate(MyApp.java:24)

xuegl commented 9 years ago

如果patch文件大小不为0的话,请确保自己的app有读写sd卡的权限

xiaoluo commented 9 years ago

我也碰到了类似的问题 java.util.zip.ZipException: File too short to be a zip file: 0 at java.util.zip.ZipFile.readCentralDir(ZipFile.java:355) at java.util.zip.ZipFile.(ZipFile.java:151) at java.util.zip.ZipFile.(ZipFile.java:115) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:152) at com.alipay.euler.andfix.patch.Patch.init(Patch.java:75) at com.alipay.euler.andfix.patch.Patch.(Patch.java:67) at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:125) at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:111) at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:104) at com.pp.assistant.PPApplication.initCloudFix(PPApplication.java:213) at com.pp.assistant.PPApplication.initApplication(PPApplication.java:208) at com.lib.common.PPBaseApplication.onCreate(PPBaseApplication.java:97) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4394) at android.app.ActivityThread.access$1500(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1273) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5072) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(Native Method) 肯定是有读写sdcard权限的,patch包大小为 150Kb

xuegl commented 9 years ago

patch是个压缩包,看能否解压出来,并看一下里面有什么内容。应该至少含有一个dex文件

eity0323 commented 8 years ago

我也遇到这个问题了,读写权限有,可以解压出来,解压是一个class.dex文件

qbeenslee commented 8 years ago

能不能把patch文件下载到/data/data/PackageName/下这样就没有读写权限问题了

cokepanm commented 8 years ago

我也是这个问题,后来看了下,/data/data/PackageName/下apatch文件大小为0

liericiyan commented 8 years ago

我也遇到这个了,你把读写sd卡的权限加上就行了

or0fun commented 8 years ago

我碰到过这个问题, 后来把文件名中间多余的"." 去掉就可以了, 只留下 ".apatch"里的"."

landryshuai commented 8 years ago

发现同样问题。除了加permission外,请确保,你程序有访问该文件的权限。

panq-jack commented 7 years ago

我也遇到了这个问题; 解压了apatch文件后,dex2jar转换了其中的dex文件,发现转换后的jar文件无法打开,猜想是不是apatch文件生成不正确,还没解决。