Zip plugin

Hi Guys

I have using Zip plugin with success both in simulator and phone (android)  but just couple of hours ago, it stoped working.

My code works in simulator but when I port into Android phone, it doesn’t work anymore. 

Anyone has encountered this issue. My simple sample code below: (I have also included a zip plugin in the build settings)

local zip = require( “plugin.zip” )

display.setDefault(“background”,1,1,1)

local cX = display.contentCenterX

local cY = display.contentCenterY

local mX = display.contentWidth

local mY = display.contentHeight

local title = display.newText(“Test Zip”,cX,20,native.systemFont,12)

title:setFillColor(0,0,0)

local function zipListener( event )

    if ( event.isError ) then

        native.showAlert("",“Error, zip not loaded”,{“OK”})

        print( “ZIP Error!”, event.isError )

    else

        native.showAlert("",event.name…" "…event.type,{“OK”})

        print( "ZIP " … event.name, event.type )

    end

end

local zipOptions =

{

    zipFile = “catmoon.zip”,

    zipBaseDir = system.ResourceDirectory,

    dstBaseDir = system.DocumentsDirectory,

    listener = zipListener

}

zip.uncompress( zipOptions )

Thanks

TH

What version of Corona are you running?

What error are you getting?  

How do you know it’s not working?

Have you tried to look at the console log? You may need to run “adb logcat” to get the error.

Rob

I’m having the exact same issue – I’ve been debugging a crash for the past couple hours and tracked it down to the zip plugin. I just came here to check if anyone else was experiencing it.

The zip plugin had been working fine for me until today. It still works in the simulator, but on Android devices the uncompress() call causes the app to crash. I just get the “Unfortunately, xx has stopped” Android popup. Nothing new is showing up in adb logcat. I’m using Corona v2017.3068.

Hi Rob

I was using coronasdk 2017.3086 … 

I just upgraded ton corona 2017.3114 and it is working again on both simulator and Andrioid (i dont have an iphone) but I work on the mac.

thanks again

Sincerely

TH

HI Rob

seems to have solved the uncompress but not compress with the upgrade

the moment the code hits compress (sometimes, it does have the zip) but it terminates the program.

This does not happen in the simulator, only on the phone (android). 

Sincerely

TH

I tried updating to the latest Corona (2017.3114) and it didn’t help for me – uncompress is still causing it to crash on Android. I don’t know about compress as I don’t use it. I don’t think it’s related to the Corona version as it was working fine for me before today with 2017.3068, which then started failing. I’m guessing the zip plug-in itself was recently updated and a bug was introduced.

Hi
I rebuild my app again and both uncompress n conpress does work anymore…
The app just terminates whenever it hits uncompress or compress.

I beileve it the plugin code as mentioned byzaphod42 that maybe the problem.

Any help would be appreciated

Thks
TH

I’ve asked Engineering to look into it.  Hopefully we will know more tomorrow.

Rob

Hey guys,

I can confirm that zip.compress crashes for me but zip.uncompress looks good.

Could you please create demo project and send it to support AT coronalabs.com?

Corona build 2017.3114

I’ve emailed a demo project as requested. At first I used a zip file containing a simple text file with only a few characters, and that worked fine. I then tried a text file with 200 characters (as in the demo), and that’s failing. So it seems to be size-dependent.

I have trouble with zip from today’s build, too. Source code has not changed anything.

There is no problem with Windows, Mac and iOS devices.

It occurs only on Android devices.

Biuld: 2017.3114

I will attach an error log.

There is no problem with the version already delivered in the store.

The following error will be displayed from what you built today and will crash.


07-31 09:16:50.422  7843  7843 F DEBUG   :     #03 pc 000212d8

/data/app/OUR_PACKAGE_ID/lib/arm/libplugin.zip.so

(_ZN6Corona14ZipTaskExtract7ExecuteEPNS_16CommandInterfaceE+1324)

07-31 09:16:50.422  7843  7843 F DEBUG   :     #04 pc 0001bbdc

/data/app/OUR_PACKAGE_ID/lib/arm/libplugin.zip.so

(_ZN6Corona14AsyncTaskQueue16ExecuteFrontTaskEv+64)

07-31 09:16:52.215  3669  7845 W ActivityManager:   Force finishing

activity OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity

07-31 09:16:52.349  3669  5493 I WindowManager: WIN DEATH: Window{56f36c9d0

u0 OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity}

07-31 09:16:52.349  3669  5493 D WindowManager: disposeInputChannel

mInputChannel: 56f36c9

OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity (server)

07-31 09:16:52.356  3669  5493 I WindowManager_SurfaceController:

Destroying surface

Surface(name=OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity) called

by com.android.server.wm.WindowStateAnimator.destroySurface:2905

com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:1119

com.android.server.wm.WindowState.removeLocked:1860

com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2928

com.android.server.wm.WindowManagerService.removeWindowLocked:2859

com.android.server.wm.WindowState$DeathRecipient.binderDied:2340

android.os.BinderProxy.sendDeathNotice:701 <bottom of call stack>

07-31 09:16:52.363  3669 17807 I WindowManager: WIN DEATH: Window{b067ffcd0

u0 SurfaceView - OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity}

07-31 09:16:52.363  3669 17807 I WindowManager_SurfaceController:

Destroying surface Surface(name=SurfaceView -

OUR_PACKAGE_ID/com.ansca.corona.CoronaActivity) called by

com.android.server.wm.WindowStateAnimator.destroySurface:2905

com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:1119

com.android.server.wm.WindowState.removeLocked:1860

com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2928

com.android.server.wm.WindowManagerService.removeWindowLocked:2859

com.android.server.wm.WindowState$DeathRecipient.binderDied:2340

android.os.BinderProxy.sendDeathNotice:701 <bottom of call stack>

I’m running 2017.3068

Code has been running flawlessly for over 6 months.  Starting yesterday (for me) the build crashes on an Android device as soon as uncompress is called.  No information shows on screen or in logcat.

logcat below.

I/Corona (16528): downloadAppIcon: going unzip: options= I/Corona (16528): table: 0x9fb41920 { I/Corona (16528): [zipFile] =\> "Md6-597e7dfa/Md6-597e7dfa.zip" I/Corona (16528): [dstBaseDir] =\> userdata: 0xa411078d I/Corona (16528): [listener] =\> function: 0x9fb418a0 I/Corona (16528): [zipBaseDir] =\> userdata: 0xa411078d I/Corona (16528): } I/Corona (16528): going uncompress F/libc (16528): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x15 in tid 16565 (GLThread 1119) I/libc (16528): Suppressing debuggerd output because prctl(PR\_GET\_DUMPABLE)==0 I/BufferQueueProducer( 149): [com.sinsepdesigns.sdzAdmin/com.ansca.corona.CoronaActivity](this:0xb5c5ec00,id:116,api:1,p:-1,c:149) disconnect(P): api 1 I/BufferQueueConsumer( 149): [com.sinsepdesigns.sdzAdmin/com.ansca.corona.CoronaActivity](this:0xb5c5ec00,id:116,api:1,p:-1,c:149) getReleasedBuffers: returning mask 0xffffffffffffffff D/GraphicBuffer( 149): free, handle(0xb54305c0) (w:976 h:600 s:976 f:0x1 u:0x000f02) I/WindowState( 571): WIN DEATH: Window{dad1ca8 u0 com.sinsepdesigns.sdzAdmin/com.ansca.corona.CoronaActivity} D/GraphicBuffer( 149): free, handle(0xb5430550) (w:976 h:600 s:976 f:0x1 u:0x000f02) D/DisplayManagerService( 571): Display listener for pid 16528 died. D/GraphicBuffer( 149): free, handle(0xb5d8c320) (w:976 h:600 s:976 f:0x1 u:0x000f02) I/SurfaceFlinger( 149): EventThread Client Pid (16528) disconnected by (149) I/SurfaceFlinger( 149): EventThread Client Pid (16528) disconnected by (149) W/WindowManager( 571): Force-removing child win Window{569e766 u0 SurfaceView} from container Window{dad1ca8 u0 com.sinsepdesigns.sdzAdmin/com.ansca.corona.CoronaActivity} D/SensorService( 571): ~SensorEventConnection(0x96086f20) D/SensorService( 571): 1 active sensors D/SensorService( 571): 0: disabling handle=0x00000001 D/SensorService( 571): SensorDevice::activate: ident=0x96086f20, handle=0x00000001, enabled=0, count=1 I/BufferQueueProducer( 149): [SurfaceView](this:0xb5c58000,id:117,api:1,p:-1,c:149) disconnect(P): api 1 D/SensorService( 571): disable index=0 D/SensorService( 571): \>\>\> actuating h/w activate handle=1 enabled=0 D/Sensors ( 571): activate handle =0, enable = 0 E/Sensors ( 571): handleToDriver handle(0) D/Sensors ( 571): use new sensor index=2, mSensors[index](b45c9000) D/Accel ( 571): ACC enable: handle:0, en:0 D/Accel ( 571): path:/sys/class/misc/m\_acc\_misc/accactive I/BufferQueueConsumer( 149): [SurfaceView](this:0xb5c58000,id:117,api:1,p:-1,c:149) getReleasedBuffers: returning mask 0xffffffffffffffff D/GraphicBuffer( 149): free, handle(0xb5c72f90) (w:976 h:600 s:976 f:0x1 u:0x000f02) D/GraphicBuffer( 149): free, handle(0xb5c71cc0) (w:976 h:600 s:976 f:0x1 u:0x000f02) D/GraphicBuffer( 149): free, handle(0xb5d8c400) (w:976 h:600 s:976 f:0x1 u:0x000f02) D/GuiExt ( 176): [GuiExtS] binder of dump tunnel(RB-0xb46e6948) died D/Accel ( 571): ACC enable(0) done D/SensorService( 571): removing connection 0x96086f20 for sensor[0].handle=0x00000001 D/SensorService( 571): ... and it was the last connection I/Zygote ( 190): Process 16528 exited due to signal (11) I/BufferQueueConsumer( 149): [SurfaceView](this:0xb5c58000,id:117,api:1,p:-1,c:-1) disconnect(C) I/ActivityManager( 571): Process com.sinsepdesigns.sdzAdmin (pid 16528) has died D/ActivityManager( 571): SVC-handleAppDiedLocked: app = ProcessRecord{32a6c0ec 16528:com.sinsepdesigns.sdzAdmin/u0a163}, app.pid = 16528 D/GraphicBuffer( 149): free, handle(0xb5d8c390) (w:976 h:600 s:976 f:0x1 u:0x000f02) W/ActivityManager( 571): Scheduling restart of crashed service com.sinsepdesigns.sdzAdmin/shared.google.play.services.base.PackageStateChangedService in 1000ms W/ActivityManager( 571): Scheduling restart of crashed service com.sinsepdesigns.sdzAdmin/com.onesignal.SyncService in 10999ms D/ActivityManager( 571): removeDyingProviderLocked: cpr=ContentProviderRecord{1201cf6 u0 com.sinsepdesigns.sdzAdmin/com.ansca.corona.storage.FileContentProvider} always=false inLaunching=false

In case anyone’s interested, the following will reproduce it, assuming the zip file is large enough. I emailed this code to Corona support, with foo.zip containing a 200 byte text file:

local zip = require("plugin.zip") local txt local function zipListener(event) if (event.isError) then txt.text = "unzip error" else txt.text = "unzip success" end end local function main() txt = display.newText({text = "unzip test", x = 100, y = 100, fontSize = 30}) local options = { zipFile = "foo.zip", zipBaseDir = system.ResourceDirectory, dstBaseDir = system.DocumentsDirectory, listener = zipListener, } zip.uncompress(options) end main()

This succeeds in the simulator but crashes on Android.

Hi everybody,

there was something wrong with Android build. It should work now.

Thank you, yes it is working for both compress and uncompress. Just testing a couple times.

I was getting clean uncompresses earlier today.  This evening, I am getting consistent unzip errors - however when printing out the event variable, other than the isError event variable being set to true,  errorMessage is blank, and response is a table with no entries.

I/Corona  ( 3725): event=

I/Corona  ( 3725): table: 0x9fd6ab60 {

I/Corona  ( 3725):   [type] => “uncompress”

I/Corona  ( 3725):   [name] => “zip”

I/Corona  ( 3725):   [errorMessage] => “”

I/Corona  ( 3725):   [isError] => true

I/Corona  ( 3725):   [response] => table: 0x9fd6ab60 {

I/Corona  ( 3725):                 }

I/Corona  ( 3725): }

zip files are between 1.2m and 1.5m.

Thank you!

I could build without any problems.

ZIP works well in all devices.

Hi @davida6.

What version of Corona are you using?

When (I need the complete date/time/timezone) on when you know it last worked and when it started failing.

What Device, OS and Version are you having the the problem on?

Thanks

Rob

Thanks Rob.

2017.3068

eastern time zone

I started on it about 3ish pm - and was working.  The night before it didnt.    About 11:00pm, last night, it stopped and I gave up on it about 12:30am this morning.

It worked on my first run this morning (about 9:30am) - same file that failed last night.

Various digiland and insignia tablets, OS: 5.1, 6.0

I am creating the zip file on a native app, and then bouncing it off a backend server.  The download gets the expected 200 response on the end phase, and the zip file resides in a subdirectory (with the same name as the file) I create off of the Documents directory.  The zip file name passed in the options is formatted as: “<subdirectory>/<filename>.zip”, and the zipBaseDir and dstBastDir directories are the Documents directory.  This puts the files in the proper subdirectory after the uncompress.  I had to do it this way as the uncompress did not properly build the sub-directory path for ALL zip files.  Some would, and some wouldnt.  Since I didnt control all of the creation of the zip files, this made them all end up in the right spot.

Thanks

Dave