Page 1 of 2

[Solved] Android - Game won't open

Posted: Sat Jan 14, 2017 2:11 am
by PiFace
I built my app today and I tested on two phones, my friend's phone (a Galaxy Prime Grand Duos, or sth like that) and my own phone (some LG low end phone, I cant remember the model exactly) On his phone it worked just fine, but not on mine, it didnt even open, just a black screen for some moments then it returned to the previous screen. No error messages.

The weird part is that I tested on my phone before the app was usable, just to check if it would run, and it did. Since that time it ran okay, I only added more images (lots of tiny icons) and more lines of my own code. I'm not using any external library. The app is a bunch of images, rectangles, buttons and text, as it is just a helper for an rpg

Some information about my phone:
-it constantly runs out of space (but I managed to get about 200MB to my 40MB app)
-Android Version: 4.1.2

If more details are needed I'll provide them. I'm posting this in a hurry. Any help would be welcome :D

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 7:20 am
by Positive07
It works on mine

Of course that is a lie, I can't really know if it works because there is no way to tell what you have done or tried... We can't know what is wrong with your game/code because we haven't seen it nor tested it, consider posting a .love/.apk or code snippet of a minimal (non-working) example, otherwise it's impossible to give you any feedback. Sorry I didn't mean to sound rude, it's just that the information you have provided doesn't really provide any valuable information, consider posting more detailed questions so we can give you better feedback

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 11:43 am
by PiFace
I'm aware I should have posted the love file and/or the apk too, but I wasn't with my pc at that moment. i just posted this before going to sleep, in case this problem was so common that it wouldn't depend on the game, or someone had experienced something similar and had a general answer.

Another weird thing that happened today: I noticed I left the width and height was using to test on the pc on the conf.lua, so I decided to comment out that part, leave only fullscreen, disabled some unnecessary modules (audio, physics and joystick) and rebuilt the apk, installed it, and it opened!... For 5 seconds, then it closed itself again. Sometimes it doesn't close right away, only if I start using it, then it closes after 2 seconds.

Anyway, now I can post the files. (There were some 'Thumbs.db' files on the zip before that, when they were removed, their file size dropped to 20 MB)

Here's the apk:
https://drive.google.com/open?id=0B-dJL ... E83LUdRVFU

And the love file:
digimonRPG.love
(16.19 MiB) Downloaded 140 times
I'm not a good coder, so I'm sure the code is very messy, but I put some comments in there. And if you're a digimon fan, yes, evolution lines and stuff are kinda crazy in that RPG...

As I'm typing this (and while waiting the uploads to finish) I'm getting more and more convinced this is just a memory usage problem, because every time I shrink some images and build the apk again, I can make the app run for a little more time (last time I tried, I could even reach all screens available, but after pressing some buttons, it closed again and I couldn't do the same thing again)



EDIT: Btw, I forgot to turn on the correct dimensions for the screen in the conf.lua. You should uncomment them, so it doesn't get stretched into a widescreen monitor :P

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 12:12 pm
by raidho36
In the love.load you load all of your graphics. Your main logo file is 3-something megabytes; each of the 360x480 cards + 64x64 thumbnails is 0.5 megabytes (there are 140 of them = 70 megabytes) and your two seals files are 5 megabytes each and therefore 10 megabytes together. Graphics alone is would be responsible for 83 megabytes of memory consumption. The framework itself also has some overhead, about 30 megabytes. If you only have 200 megabytes tops to spare and even then it runs out all the time, it's no wonder it fails to work.

It opens up on my phone (1 gig free) but it takes a while, and memory consumption reports 149 cached 219 megabytes for this app.

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 12:28 pm
by PiFace
How can I know the true amount of bytes that images will use, and what are the best ways to reduce that amount specifically? For example, the seal file is 100 KB, and all the cards together take up ~6 MB, but they obviously take up more memory than that while the app is running, as you said, it uses 150 MB. Also, is there any tip to reduce the usage of the framework?

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 12:58 pm
by raidho36
You can simply calculate. LÖVE uses 32 bit textures, so that's W×H×4 bytes.

To reduce amount of memory you need to have less pixels loaded at a time. Shrinking graphics will get you the quickly - halving resolution quarters number of pixels. But you probably want to simply keep unused graphics out of memory - only load it if you're going to use it and once you don't need that image displayed anymore remove it from memory.

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 1:09 pm
by PiFace
Ok thank you! You're always saving my life lol

Once I change the way graphics are handled, I'll give feedback.

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 1:38 pm
by Positive07
You should also use [wiki]CompressedImageFormat[/wiki]s for mobile, they stay compressed in memory.

Also consider reducing the quantity of assets, using a spritesheet , they consume less memory than multiple sprites and allows you to use [wiki]SpriteBatches [/wiki] which helps speeding up drawing.

Consider disabling some unused [wiki]love[wiki] modules at compile time when creating the APK, such as Physics or Audio

[wiki]love.lowmemory[/wiki] is called when you are running out of memory, you can garbagecollect all your images and display a nice error message to the user of your app.

Also if you can optimize your code you may be able to load images only when they are needed, for example if you need an asset when in combat mode then load that asset when entering the combat mode, it may take some time so you can put a nice transition or loading screen, when going out of the combat mode you nill it and [manual]collectgarbage[/manual]

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 1:57 pm
by raidho36
Note that compressed GPU formats must be "pre-compressed", you can't load a PNG file and get a DXT compressed texture.

Atlases speed up rendering due to reducing number of draw calls -it saves on texture switch calls- but I reckon it doesn't save any memory, in fact it could be wasteful due to blank pixels and impossibility to unload individual sprites.

Re: Android - Gane won't open

Posted: Sat Jan 14, 2017 2:25 pm
by PiFace
Wow, just making graphics load only on demand, then releasing them when no longer used made everything work! Thank you so much guys
btw, I'll add a solved tag to the topic (lol I mistyped game in the title)