Latest build 3301 does not add subfolders

I tried building with the latest 3301 build and images in one of my subfolders donot even appear to get added into the app (checking the console log I says failed to find all the images in this folder), where as earlier corona builds (3184, 3222) had no problem finding and loading the images.

Very strange nowadays for the build though as it shows 0 seconds firs time then only 7 seconds 2nd time (why does it even show build successful twice?) below (same happens when using corona build 3288):

Using java version “1.8.0_121”

                    Java™ SE Runtime Environment (build 1.8.0_121-b13)

                    Java HotSpot™ 64-Bit Server VM (build 25.121-b13, mixed mode)

May 26 02:47:43.889 Building Android app for jacques1@vanderveergames.com with 2018.3301

May 26 02:47:46.096 Using custom build id from app bundle: 00000 (AppSettings.lua)

May 26 02:47:47.725 BUILD SUCCESSFUL

                    Total time: 0 seconds

May 26 02:48:48.617 BuildID: 5b09112932eed

May 26 02:49:18.687      [echo]  “creating unsigned.apk” 

May 26 02:49:18.687 

May 26 02:49:24.663 BUILD SUCCESSFUL

                    Total time: 7 seconds

May 26 02:49:24.664 

May 26 02:49:24.756 Android build succeeded in 98 seconds

Note: I do use an .obb expansion file and it is properly setup in build.settings. Whether subfolders in the main folder where main.lua is located get added to the .obb or the app’s .apk I don’t know but it appears now for some reason that this subfolder is no longer getting added to the app, even though other subfolders with other images do seems to get added, although I can’t be sure as my app hangs right after the corona labs logo.

Actually, if i do a clean install the app hangs after I tap “allow”  in the permissions pop up (and in the console log I can see it does not load the subfolder images, most likely it will not load anything). If I then restart the app it loads properly. This is identical for both corona builds 3288 and 3301.

I thought this was only an issue for android 7.0 and newer but my device is running android 6.0.1

I am working on 2018.3301 and I have been testing on two devices one running 7.1.1 and a 5.1.1. I don’t currently have an 8.x device. I don’t seem to have the same problem. Are you building on a mac or a pc?

Well it depends if you are using the expansion file setting or not and android below 6.0 doesn’t have this issue which was only introduced as of android 6.0.

Build on mac or pc doesn’t make a difference because it is how corona/android handles the storage permission when using expansion files.

…great wasted 20minutes on a full log reply on for this forum to say its to long and ended up deleting half of what i typed…

just need to know from corona staff which comes first in main.lua:

local function isStoragePermissionGranted( grantedAppPermissionsTable ) if grantedAppPermissionsTable then for k,v in pairs( grantedAppPermissionsTable ) do if ( v == "Storage" ) then print( "\*\* Storage permission granted! \*\*" ) return true end end end return false end local function appPermissionsListener( event ) if ( isStoragePermissionGranted( event.grantedAppPermissions ) ) then -- Do stuff requiring storage permission print("\* Storage Permission granted \*") --debugLog=debugLog.."\n STORAGE PERMISSION GRANTED" else -- Handle not having storage permission print("\* Storage Permission NOT granted \*") --debugLog=debugLog.."\n STORAGE PERMISSION NOT GRANTED" end end if ( not isStoragePermissionGranted( system.getInfo( "grantedAppPermissions" ) ) ) then if ( native.canShowPopup( "requestAppPermission" ) ) then -- Request Storage Permission. local options = { appPermission = "Storage", urgency = "Critical", listener = appPermissionsListener, rationaleTitle = "Storage access required", rationaleDescription = "Storage access is required to store your career data. Re-request now?", settingsRedirectTitle = "Alert", settingsRedirectDescription = "Without the ability to store data, this app cannot properly function. Please grant storage access within Settings." } native.showPopup( "requestAppPermission", options ) else -- You need to add a permission in the Storage group to your build.settings. print("\* requestAppPermission NOT compatible, Storage Permission NOT granted \*") end end 

or…

local function onSystemEvent( event ) print("\*\* IN onSystemEvent \*\*") if event.type == "applicationStart" then print("\*\* STARTED \*\*") if system.getInfo("platformName") == "Android" then licensing = require "licensing";licensing.init( "google" ) function licensingListener( event ) if not ( event.isVerified ) and vg==nil then native.showAlert( "Licensing Failed.", "There was a problem verifying the application, please try again or re-download from Google Play Store.", { "OK" },function(event) native.requestExit() end ) else startScreen() end end licensing.verify( licensingListener ) else --not android so no google licensing check startScreen() end end) elseif event.type == "applicationSuspend" then ---check if need to save current game status elseif event.type == "applicationResume" then ---check if need to restor graphics on android end

Situation with my app:

1: install app from google play

2: Run first time after install, default google storage permission pops up (not the main.lua code pop up)

3: If I put a 1 second delay in applicationstart before checking google llicensing then another default white box appears on a black screen behind the default storage pop up that says app will exit.

If i don’t put a delay then the white box does not appear but the app hangs (Crashes on some devices).

4: If i close the app and launch again all runs perfectly fine.

So my question to corona staff is…

Please provide us with a correct sequence of what to do when using expansion files. And possibly simple example of how to stop the rest of the main.lua code from running while waiting for user to ALLOW from default pop up.

I have a very long adb log which shows exactly what is going on, even how by default google licensing runs a check even before my application start licensing check…

Lastly, is there a difference if we switch the order of permissions in buid.settings?

           “android.permission.INTERNET”,

            “com.android.vending.CHECK_LICENSE”,

            “android.permission.WRITE_EXTERNAL_STORAGE”,

or 

           “android.permission.INTERNET”,

           “android.permission.WRITE_EXTERNAL_STORAGE”,    

            “com.android.vending.CHECK_LICENSE”,

Telling us that STORAGE must be allowed before launching the app is a real catch 22, since you can only allow storage AFTER launching the app.

Lua is a one-pass compiler. It will execute the code in the order it sees it.  

if ( not isStoragePermissionGranted( system.getInfo( "grantedAppPermissions" ) ) ) then

will execute first, if your

 

Runtime:addEventListener("system", onSystemEvent)

happens later in main.lua. But if this line of code and your onSystemEvent function are higher up, there is a chance the system event would trigger first. Putting in some print statements and watching “adb logcat” would confirm. Since the system event is an event, it has to be triggered and likely wouldn’t happen until the next frame, but if your main.lua is doing more work, it’s possible it could take more than one frame to run main.lua.

Rob

So I just need to know what should be done first? Check google licensing or check storage?

Never had any of these issue previously before all this new expansion/storage permissions stuff, but now seems i have to change how all the code works before the game starts.

If i only put a storage permissions check and pop up in the main.lua and only after that is granted then load another lua file that contains my game code, then my own permission pop up appears but below that is (what seems to be android default permission message) a white box say “myapp will now exit!, To use myapp please grant the storage permission so expansion files can be downloaded!” with an exit button? If i allow through my pop up then i still need to tap the exit button of the default white box and then have to relaunch the app again…

Something can’t be write with this.

If i leave everything in a single main.lua, then the default white box doesn’t appear only my own permission pop up…

So again, just a simple question as to what is supposed to be checked first? Storage then license? And does it matter what order they are in in the build.settings?

Since there is no current correct corona solution for using expansion files without having a user close then relaunch an app after first -time launch, the only option left is to reduce app size to under 100MB and upload it as a single apk file without using usesExpansionFile = true, this works without issue on first launch after a fresh install.

Of course downloading assets from a server is another option but should not really be necessary.

I do hope corona solves their expansion file issues in the near future.

You may want to look at daily build 3312 or later. We’ve made a fix to try and address this.

Rob

Thanks Rob, will definitely do an upload with this new build and report back here as not being able to use the expansion file option in android 6.0> is a huge setback.

On a slightly different note I do see that with the 3308 build, google’s pre-launch report always indicates samsung galaxy S7 edge on android 6.0 always has a native crash while the other 9 devices (different brands and android 5.1>8.0) in google’s pre-launch test have no issues. This was not the case with earlier corona builds which did not show any native crashes in pre-launch for any of the 10 devices google tests. And this is occurs whether I use expansion files or not. Not sure what the error is but see a lot of critical errors in the logcat from google as below:

06-03 07:21:27.027: I/rpmbd(22626): *************** start rpmb daemon *************** 

06-03 07:21:27.027: I/rpmbd(22626): Socket has name /data/app/rpmbd

06-03 07:21:27.027: I/art(11078): Starting a blocking GC Explicit

06-03 07:21:27.037: E/rpmbd(22626): <device open> fail

06-03 07:21:27.057: V/lhd(22627): GlLhdInterface::Init(/system/etc/lhd.conf)

06-03 07:21:27.057: E/lhd(22627): SetCfgValue: Critical Error. Unknown configuration parameter “FlpName”=“tcp”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheSerialControl”=“BBD:Serial=TTY”

06-03 07:21:27.057: E/lhd(22627): SetCfgValue: Critical Error. Unknown configuration parameter “LheClockMHz”=“100”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LhePatch”="/dev/bbd_patch"

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheMaxMcuResetTries”=“4”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheBbdPacket”="/dev/ttyBCM"

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheBbdControl”="/dev/bbd_control"

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheBbdSensor”="/dev/bbd_sensor"

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “Lhe477xDebugFlags”=“RPC:FACILITY=33:STDOUT_PUTS:STDOUT_LOG”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheConsole”="/data/system/gps/LheConsole"

06-03 07:21:27.057: E/lhd(22627): SetCfgValue: Critical Error. Unknown configuration parameter “LheSensorIpc”=“true”

06-03 07:21:27.057: E/lhd(22627): SetCfgValue: Critical Error. Unknown configuration parameter “LhePinMux”=“P17=M1”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheAutoBaudDelayMS”=“10”

06-03 07:21:27.057: V/lhd(22627): SetCfgValue: LHD config “LheMaxMcuResetTries”=“3”

06-03 07:21:27.057: E/lhd(22627): OpenFirmwareFile: Fail to open /efs/sec_efs/sensorhub_urgent_fw.patch, errno 2

06-03 07:21:27.057: E/lhd(22627): getCustPatchVersion: Fail to parse patch /efs/sec_efs/sensorhub_urgent_fw.patch

06-03 07:21:27.057: E/lhd(22627): getCustPatchVersion: <CustomerVersion> not found

06-03 07:21:27.057: D/lhd(22627): GpsHalOneInstance: open("/data/system/gps/.lhd.lock", O_WRONLY|O_CREAT, 0660) returned -1, errno=13

06-03 07:21:27.057: E/lhd(22627): LHD Daemon Process is already running, the second instance will not be started!

I don’t see anything that appears to come from Corona. Are any of those errors related to your app or things your app is trying to do?
 

Rob

I only use one plugin which is vungle, and only request the 3 basic permissions. Logcat is really long, perhaps something in here is the issue, again, it never indicates a pre-launch test error for other models google checks only the samsung s7 edge on android 6.0, not sure if that device does something different.

06-03 07:20:19.187: D/ViewRootImpl(21668): ViewPostImeInputStage processPointer 0

06-03 07:20:19.187: W/google-breakpad(21668): ### ### ### ### ### ### ### ### ### ### ### ### ###

06-03 07:20:19.187: W/google-breakpad(21668): Chrome build fingerprint:

06-03 07:20:19.187: W/google-breakpad(21668): 1.3.6

06-03 07:20:19.187: W/google-breakpad(21668): 482

06-03 07:20:19.187: W/google-breakpad(21668): a62ada37-657b-4454-8f33-6399db62ca12

06-03 07:20:19.187: W/google-breakpad(21668): ### ### ### ### ### ### ### ### ### ### ### ### ###

06-03 07:20:19.187: A/libc(21668): Fatal signal 11 (SIGSEGV), code 2, fault addr 0x36ba5944 in tid 21758 (GLThread 307)

06-03 07:20:19.247: W/SELinux(2986): Function: selinux_compare_spd_ram, index[3], priority [2], priority version is VE=SEPF_SECMOBILE_6.0.1_0004

06-03 07:20:19.267: W/SELinux(2986): SELinux: Loaded file_contexts contexts from /file_contexts.

06-03 07:20:19.267: A/DEBUG(2986): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

06-03 07:20:19.267: A/DEBUG(2986): Build fingerprint: ‘samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXU1APB6:user/release-keys’

06-03 07:20:19.267: A/DEBUG(2986): Revision: ‘9’

06-03 07:20:19.267: A/DEBUG(2986): ABI: ‘arm’

06-03 07:20:19.267: A/DEBUG(2986): pid: 21668, tid: 21758, name: GLThread 307  >>> com.vanderveergames.wotz <<<

06-03 07:20:19.267: A/DEBUG(2986): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x36ba5944

06-03 07:20:19.277: A/DEBUG(2986):     r0 70b1d784  r1 130d2100  r2 00261a42  r3 f1822070

06-03 07:20:19.277: A/DEBUG(2986):     r4 00261a42  r5 130d2100  r6 70b1cdd0  r7 713389d0

06-03 07:20:19.277: A/DEBUG(2986):     r8 12d28900  r9 eea91300  sl df4c2090  fp df4c2004

06-03 07:20:19.277: A/DEBUG(2986):     ip f1822070  sp df4c1f80  lr 747e570d  pc f4b40ae8  cpsr 00070030

06-03 07:20:19.287: A/DEBUG(2986): backtrace:

06-03 07:20:19.287: A/DEBUG(2986):     #00 pc 000eaae8  /system/lib/libart.so (art_quick_imt_conflict_trampoline+7)

06-03 07:20:19.287: A/DEBUG(2986):     #01 pc 02f5470b  /system/framework/arm/boot.oat (offset 0x2f26000)

06-03 07:20:19.377: I/MdnieScenarioControlService(3373): action  :  ACTION_GAME_MODE_STATE_IN

06-03 07:20:19.477: I/MdnieScenarioControlService(3373): setGameMode(HIGH)

06-03 07:20:19.727: A/DEBUG(2986): Tombstone written to: /data/tombstones/tombstone_00

06-03 07:20:19.727: E/DEBUG(2986): AM write failed: Broken pipe

06-03 07:20:19.727: E/DEBUG(2986): [06-03 07:20:19.727  2986: 2986 E/        ]

06-03 07:20:19.727: E/DEBUG(2986): ro.product_ship = true

06-03 07:20:19.727: E/DEBUG(2986): [06-03 07:20:19.727  2986: 2986 E/        ]

06-03 07:20:19.727: E/DEBUG(2986): ro.debug_level = 0x4f4c

06-03 07:20:19.727: E/DEBUG(2986): [06-03 07:20:19.727  2986: 2986 E/        ]

06-03 07:20:19.727: E/DEBUG(2986): sys.mobilecare.preload = false

06-03 07:20:19.727: E/audit(4701): type=1701 msg=audit(1528035619.727:1199): auid=4294967295 uid=10191 gid=10191 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=21758 comm=474C54687265616420333037 exe="/system/bin/app_process32" sig=11

06-03 07:20:19.727: I/BootReceiver(3373): Copying /data/tombstones/tombstone_00 to DropBox (SYSTEM_TOMBSTONE)

06-03 07:20:19.727: W/System.err(3373): mkdir failed: ENOENT (No such file or directory) : /data/user/0/android/shared_prefs

06-03 07:20:19.727: E/SharedPreferencesImpl(3373): Couldn’t create directory for SharedPreferences file /data/user/0/android/shared_prefs/log_files.xml

06-03 07:20:19.727: W/ActivityManager(3373): Error in app com.vanderveergames.wotz running instrumentation ComponentInfo{com.google.android.apps.mtaas.crawler/android.support.test.runner.AndroidJUnitRunner}:

06-03 07:20:19.727: W/ActivityManager(3373):   Native crash

06-03 07:20:19.727: W/ActivityManager(3373):   Native crash: Segmentation fault

06-03 07:20:19.727: D/AndroidRuntime(21620): Shutting down VM

06-03 07:20:19.867: I/AudioFlinger(2993): BUFFER TIMEOUT: remove(4096) from active list on thread 0xee2c0000

06-03 07:20:19.877: D/PowerManagerService(3373): [api] handleWakeLockDeath : release WakeLock : PARTIAL_WAKE_LOCK              ‘com.evernote.android.job.JobRescheduleService:run’ (uid=10191, pid=21668, ws=null) (elapsedTime=776)

06-03 07:20:19.877: D/GraphicsStats(3373): Buffer count: 7

06-03 07:20:19.877: I/WindowState(3373): WIN DEATH: Window{e1a4ca4 u0 d0 com.vanderveergames.wotz/com.ansca.corona.CoronaActivity}

06-03 07:20:19.877: D/libEGL(2977): eglTerminate EGLDisplay = 0x7fa563ef88

06-03 07:20:19.877: W/WindowManager(3373): Force-removing child win Window{cd88c3c u0 d0 SurfaceView} from container Window{e1a4ca4 u0 d0 com.vanderveergames.wotz/com.ansca.corona.CoronaActivity}

06-03 07:20:19.877: I/SurfaceFlinger(2977): id=32 Removed TurfaceView (6/12)

06-03 07:20:19.877: I/SurfaceFlinger(2977): id=32 Removed TurfaceView (-2/12)

06-03 07:20:19.877: D/InputDispatcher(3373): Focus left window: 21668

06-03 07:20:19.877: D/InputDispatcher(3373): Cancel for WindowManager (server) because touched window was removed

06-03 07:20:19.877: I/SurfaceFlinger(2977): id=31 Removed DoronaActiv (6/11)

06-03 07:20:19.887: I/SurfaceFlinger(2977): id=31 Removed DoronaActiv (-2/11)

06-03 07:20:19.887: I/APM::AudioPolicyManager(2993): stopOutput() output 2, stream 3, session 26

06-03 07:20:19.887: W/ContextImpl(3373): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:830 com.android.server.policy.PhoneWindowManager.notifyToSSRM:8587 com.android.server.policy.PhoneWindowManager.access$1500:304 com.android.server.policy.PhoneWindowManager$PolicyHandler.handleMessage:1206 android.os.Handler.dispatchMessage:102 

06-03 07:20:19.887: I/Zygote(3013): Process 21668 exited due to signal (11)

06-03 07:20:19.887: W/WindowManager(3373): Failed looking up window

06-03 07:20:19.887: W/WindowManager(3373): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@5fe0e2f does not exist

06-03 07:20:19.887: W/WindowManager(3373): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:14786)

06-03 07:20:19.887: W/WindowManager(3373): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:14777)

06-03 07:20:19.887: W/WindowManager(3373): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1764)

06-03 07:20:19.887: W/WindowManager(3373): at android.os.BinderProxy.sendDeathNotice(Binder.java:558)

06-03 07:20:19.887: I/WindowState(3373): WIN DEATH: null

06-03 07:20:19.887: I/SurfaceFlinger(2977): id=32 Removed TurfaceView (-2/11)

06-03 07:20:19.887: I/SurfaceFlinger(2977): id=31 Removed DoronaActiv (-2/11)

06-03 07:20:19.887: W/ResourcesManager(3373): getTopLevelResources: /system/priv-app/LiveBroadcast/LiveBroadcast.apk / 1.0 running in null rsrc of package com.sec.android.app.camera.plb

06-03 07:20:19.887: D/ResourcesManager(3373): For user 0 new overlays fetched Null

06-03 07:20:19.887: D/libEGL(2977): eglTerminate EGLDisplay = 0x7fe9712318

06-03 07:20:19.887: W/ResourcesManager(3373): getTopLevelResources: /system/priv-app/LiveBroadcast/LiveBroadcast.apk / 1.0 running in null rsrc of package com.sec.android.app.camera.plb

06-03 07:20:19.887: W/ResourcesManager(3373): getTopLevelResources: /system/priv-app/SamsungCamera5/SamsungCamera5.apk / 1.0 running in null rsrc of package com.sec.android.app.camera

06-03 07:20:19.887: D/ResourcesManager(3373): For user 0 new overlays fetched Null

06-03 07:20:19.887: W/ResourcesManager(3373): getTopLevelResources: /system/priv-app/SamsungCamera5/SamsungCamera5.apk / 1.0 running in null rsrc of package com.sec.android.app.camera

06-03 07:20:19.887: W/ResourcesManager(3373): getTopLevelResources: /system/app/STalkback/STalkback.apk / 1.0 running in null rsrc of package com.samsung.android.app.talkback

06-03 07:20:19.897: D/ResourcesManager(3373): For user 0 new overlays fetched Null

06-03 07:20:19.897: W/ResourcesManager(3373): getTopLevelResources: /system/app/STalkback/STalkback.apk / 1.0 running in null rsrc of package com.samsung.android.app.talkback

06-03 07:20:19.897: W/ResourcesManager(3373): getTopLevelResources: /system/app/UniversalSwitch/UniversalSwitch.apk / 1.0 running in null rsrc of package com.samsung.android.universalswitch

06-03 07:20:19.897: D/ResourcesManager(3373): For user 0 new overlays fetched Null

06-03 07:20:19.897: W/ResourcesManager(3373): getTopLevelResources: /system/app/UniversalSwitch/UniversalSwitch.apk / 1.0 running in null rsrc of package com.samsung.android.universalswitch

06-03 07:20:19.957: I/ActivityManager(3373): Force stopping com.vanderveergames.wotz appid=10191 user=0: finished inst

06-03 07:20:19.957: I/ActivityManager(3373): Killing 21668:com.vanderveergames.wotz/u0a191 (adj 0): stop com.vanderveergames.wotz cause finished inst

06-03 07:20:19.957: W/ActivityManager(3373): Error shutting down UiAutomationConnection

06-03 07:20:19.957: D/ActivityManager(3373): isAutoRunBlockedApp:: com.vanderveergames.wotz, Auto Run ON

06-03 07:20:19.957: W/ActivityManager(3373): Scheduling restart of crashed service com.vanderveergames.wotz/shared.google.play.services.base.PackageStateChangedService in 1000ms

06-03 07:20:19.957: I/Robo(21594): onUnbind.

06-03 07:20:19.957: W/ActivityManager(3373): Scheduling restart of crashed service com.vanderveergames.wotz/com.evernote.android.job.JobRescheduleService in 11000ms

06-03 07:20:19.957: I/Robo(21594): Interrupted while waiting for the response from the platform.

06-03 07:20:19.957: W/Robo(21594): Current package [#terminated#] is out of whitelisted packages

06-03 07:20:19.957: W/ActivityManager(3373): Force removing ActivityRecord{cb3312d u0 com.vanderveergames.wotz/com.ansca.corona.CoronaActivity t12}: app died, no saved state

06-03 07:20:19.957: I/Robo(21594): New Screen: Optional.of(ScreenNode {Id=2, PackageName=#terminated#, ActivityName=Optional.of(TerminatedActivity)})

06-03 07:20:19.957: W/VirtualScreenManagerService(3373): failed to move task TaskRecord{3be500f #12 A=com.vanderveergames.wotz U=0 sz=1}

06-03 07:20:19.957: I/Robo(21594): Finished writing artifact file /storage/emulated/0/app_firebase_test_lab/2.meta

06-03 07:20:19.957: W/Robo(21594): Failed to send file-written message.

06-03 07:20:19.957: D/InputDispatcher(3373): Focused application set to: xxxx

Is this your app:  com.vanderveergames.wotz

Is this adb logcat run from a Galaxy S7 edge running Android 6?

Yes that’s the app, and yes that’s from the logcat from google’s pre-launch testing report for the Glaxay S7 edge on android 6. I notice in some of the other forum posts a few devs also had similar issues with galaxy s7 on android. Not sure if the  Fatal signal 11 (SIGSEGV), is the same as others experienced in their google pre-launch testing.

Actually, if i do a clean install the app hangs after I tap “allow”  in the permissions pop up (and in the console log I can see it does not load the subfolder images, most likely it will not load anything). If I then restart the app it loads properly. This is identical for both corona builds 3288 and 3301.

I thought this was only an issue for android 7.0 and newer but my device is running android 6.0.1

I am working on 2018.3301 and I have been testing on two devices one running 7.1.1 and a 5.1.1. I don’t currently have an 8.x device. I don’t seem to have the same problem. Are you building on a mac or a pc?

Well it depends if you are using the expansion file setting or not and android below 6.0 doesn’t have this issue which was only introduced as of android 6.0.

Build on mac or pc doesn’t make a difference because it is how corona/android handles the storage permission when using expansion files.

…great wasted 20minutes on a full log reply on for this forum to say its to long and ended up deleting half of what i typed…

just need to know from corona staff which comes first in main.lua:

local function isStoragePermissionGranted( grantedAppPermissionsTable ) if grantedAppPermissionsTable then for k,v in pairs( grantedAppPermissionsTable ) do if ( v == "Storage" ) then print( "\*\* Storage permission granted! \*\*" ) return true end end end return false end local function appPermissionsListener( event ) if ( isStoragePermissionGranted( event.grantedAppPermissions ) ) then -- Do stuff requiring storage permission print("\* Storage Permission granted \*") --debugLog=debugLog.."\n STORAGE PERMISSION GRANTED" else -- Handle not having storage permission print("\* Storage Permission NOT granted \*") --debugLog=debugLog.."\n STORAGE PERMISSION NOT GRANTED" end end if ( not isStoragePermissionGranted( system.getInfo( "grantedAppPermissions" ) ) ) then if ( native.canShowPopup( "requestAppPermission" ) ) then -- Request Storage Permission. local options = { appPermission = "Storage", urgency = "Critical", listener = appPermissionsListener, rationaleTitle = "Storage access required", rationaleDescription = "Storage access is required to store your career data. Re-request now?", settingsRedirectTitle = "Alert", settingsRedirectDescription = "Without the ability to store data, this app cannot properly function. Please grant storage access within Settings." } native.showPopup( "requestAppPermission", options ) else -- You need to add a permission in the Storage group to your build.settings. print("\* requestAppPermission NOT compatible, Storage Permission NOT granted \*") end end 

or…

local function onSystemEvent( event ) print("\*\* IN onSystemEvent \*\*") if event.type == "applicationStart" then print("\*\* STARTED \*\*") if system.getInfo("platformName") == "Android" then licensing = require "licensing";licensing.init( "google" ) function licensingListener( event ) if not ( event.isVerified ) and vg==nil then native.showAlert( "Licensing Failed.", "There was a problem verifying the application, please try again or re-download from Google Play Store.", { "OK" },function(event) native.requestExit() end ) else startScreen() end end licensing.verify( licensingListener ) else --not android so no google licensing check startScreen() end end) elseif event.type == "applicationSuspend" then ---check if need to save current game status elseif event.type == "applicationResume" then ---check if need to restor graphics on android end

Situation with my app:

1: install app from google play

2: Run first time after install, default google storage permission pops up (not the main.lua code pop up)

3: If I put a 1 second delay in applicationstart before checking google llicensing then another default white box appears on a black screen behind the default storage pop up that says app will exit.

If i don’t put a delay then the white box does not appear but the app hangs (Crashes on some devices).

4: If i close the app and launch again all runs perfectly fine.

So my question to corona staff is…

Please provide us with a correct sequence of what to do when using expansion files. And possibly simple example of how to stop the rest of the main.lua code from running while waiting for user to ALLOW from default pop up.

I have a very long adb log which shows exactly what is going on, even how by default google licensing runs a check even before my application start licensing check…

Lastly, is there a difference if we switch the order of permissions in buid.settings?

           “android.permission.INTERNET”,

            “com.android.vending.CHECK_LICENSE”,

            “android.permission.WRITE_EXTERNAL_STORAGE”,

or 

           “android.permission.INTERNET”,

           “android.permission.WRITE_EXTERNAL_STORAGE”,    

            “com.android.vending.CHECK_LICENSE”,

Telling us that STORAGE must be allowed before launching the app is a real catch 22, since you can only allow storage AFTER launching the app.