AppInventor Says the App is Too Large

Hello all,
I'm buiding an app, but I cannot download the APK and the other file, because AI says the app is too large. But it has only two sceens, 12 images, some links, and about 12-15 Activity Starters. What can I do please? I need the app for promotion, it is a free app food recipes. Thanks! Martina

Upload your aia file to https://unchive.kodular.io to get some statistics of your project and post a screenshot of the statistics overview here
Taifun

If you can export the .aia file, upload it to code.appinventor.mit.edu for the compile.

12 images should not be 20 MB or more. So how big is your AIA?

1 Like

Hello, Thank you. Tomorrow I will have a look on it. Now we have 10:35 pm and I go to bed. Thanks. Martina

1 Like

Good morning all,

Unfortunately, it is also not possible to export the .AIA file. I tried it two times. I know how to do this, but it does not work. I want to add the information, that the only difference to my other projects is, that this projects was "Saved as" from another similar project, which I had without problems saved and exported before. Perhaps something happened, which was not alright. The other project Kids Edu (you can see it in the AI Gallery) has more then 20 images and has the same design like the Food app. Is it possible, that I need to create the whole project from the scratch without use of "Save as" from the Kids Edu project? Thanks! Martina

1 Like

Hello, I think I start it from the scratch. Thank you very much for your help. Martina

1 Like

What error message do you get when you try to export your aia project to your computer?

Have you tried using this url, so that the project is not loaded ?:

https://ai2.appinventor.mit.edu/?autoload=false

Dear Forum Members,

The mystery of the non-exportable app has been solved. The issue was with the images. They were between 2 to 3 MB each, and with 17 images, it quickly reached the AI limit. Since I suspected a different error, I ended up permanently deleting the app, including from the trash, because the new one was supposed to have the same name as before. Although I knew I could simply compress and re-upload the images, I wasn't sure what the issue was initially and decided to delete everything and start from scratch.

In the meantime, I've compressed the "mega images" to files about 200-300 KB, and now it works flawlessly with building the APK, etc. I recommend using Mass Image Compressor 3.2, which I used to compress the images. You can get it for free on Sourceforge. An installable .EXE file is downloaded, and the operation is self-explanatory.

Thanks again for all your kind help. I am now closing the topic.

Martina

1 Like

Instead of uploading images directly to the app, upload them via the cloud.

In my case I use Supabase (Free and with an excellent limit).

That way you'll never have that problem again.

I literally created a complex and robust system [Just for fun] with users, different GUI's, security, data structure, gis, etc.

and the app itself, only weighs about 7 Mb.

Because everything was dynamic components, synchronous and asynchronous functions, API calls to carry, process and bring data, images, etc.

All very well, but some developers like to have all their media assets included in their app, there are also many people who are aware of unreliable network connections for their users, therefore need their assets to be local.

1 Like

Yes, it's true and you're absolutely right.

Another option is to lower the quality of the images, and for this I did not find a better option (compression ratio, quality and price) than to send it by whatsapp and then use it.

I tell you this given the experience, because I used many compressors and it is the best option, because it allows you to do it in batch (up to 30 images)

I even use it to upload the images to the supbase bucket, thus saving space.

The question is first, do you want to have a large app in the Play Store ans/or is there a size limit set by AI2 and second (and this has always been my concern) do I want users to have access to my critical files (outside the app)?

I have explained all this many times in the forum: If you don't want the latter, there are only two ways to achieve it:

  1. Upload all large files to assets (as long as your AAB is smaller than 150MB following my guide) or
  2. Download all large files to the PrivateDir (internal storage) when you first start the app. This way, these files cannot be accessed with non-rooted devices.
1 Like

Sometimes it is not about "wanting", many times it is about "it is necessary". It happened to me many times.

  • I must update the App every time a product/food varies an ingredient???
    Ex: The sandwich now doesn't have lettuce, but it has double egg, I must release the version
    50Mb.doubleegg
    Only because one image change, and i dont have other way to do that.

A "big/Large" application does not always have to do with the issue of assets, but with internal logic; Many times there are Apps that make calculations and computations that are not well optimized, as well as are oriented to security (computing, data, etc.). So many checks must be done before receiving, reading, modifying, sending or displaying any data.

As for assets being accessible outside of the app... That is a subject "of and with" much debate.

Because, I can perform a buffer attack to an App created with appinventor or any other attack aimed at memory, and I can make disasters. Because the variables are not defined, they are not "strongly typed" (due to the JS nature of the platform).

Not everyone cleans the variables from memory after using them, nor does it check the data entered by the user, it does not even check if it is a user or a bot.

In short, that is one of the many cases where it is necessary to discern what is done with assets, data, etc.

I know Appinventor isn't designed to be secure, but remember that there are a lot of iot devices running Apps designed with the platform, which are literally ultra vulnerable.

From a relay that lights up an LED bulb, to devices with which you can interact in a very human way, or the provision of water to the home, not to mention webcams! Including access to the device itself (Where minors are using them).

I always focus on the issue of security for my students.

And then there is the case where an app to order meals weighs 900 Mb and asks to update every 10 minutes; a sandwich changed ingredients, the pasta ran out, or removed the Chinese food section.

I know that Appinventor is the first approach to programming, as well as Python for the older ones (Sorry but someone had to tell them).

But it's important to keep certain principles in mind when designing an app, no matter if it's for a demo...

Because... If it works... Why modify it/change it?

And believe it or not... That's the prevailing thinking in the industry.