[edited to show current state of play a week after asking the question]
I delved into app inventor because my kids (age 10 and 12) are about to get their first android phones, and have done some drag and drop programming (game maker) so I thought it might be a good entry point for them.
I have now written 5 apps myself with app inventor, and installed 4 onto my phone, and I can't install the 5th one because I am "out of memory" apparently, despite having 3 gigs free on the SD card on the phone.
Ok so what is going on? Settings->Applications->Manage Applications doesn't cut it, because the "Move to SD card" option is greyed out on the appinventor apps.
I packaged up my 5th app as an apk, and then unzipped it to look at AndroidManifest.xml but it's not plain text :-/
Solutions that are not a good fit for me:
(1) "Wait"
(2) "Root your phone and then..."
(3) "delete some stuff from your phone memory" [a work-around, not a solution]
(4) "Buy this product and then..."
OK so here's an update. I still have not managed to solve this problem. Here is what I did so far.
1) I created, in appinventor, an application called "test123", with a picture and a button (which does nothing).
2) I created an apk, and stuck it on my website: you can see it at this link . Anyone who wants to can download it and run it on their phone, as long as they have 4 or so megs of free memory on their phone. As far as I know they can't download it onto their SD card. So let me clarify that the challenge is to get that app, the one in the link, installed onto a phone SD card.
OK so let's try!
3) I put the apk on a linux box, downloaded apktool, and ran
apktool d test123.apk
After a little bit of baksmaling, I now had a directory test123 .
4) I moved into directory test123 where I found a file AndroidManifest.xml . I edited this file; the first few lines were
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
xmlns:android="http://schemas.android.com/apk/res/android">
[I have censored my gmail address with ***s]
and I changed them to
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal">
5) I moved into the directory where the old apk was (i.e. the directory containing the directory test123) and typed
apktool b test123
After some smaling, the program terminated.
6) I changed into directory
test123/dist
and in it I found a new .apk file, also called test123.apk . I put it on my website here . Note that both the "before apktools" and the "after apktools" versions of the apk have exactly the same name -- test123.apk .
7) I now downloaded the "after" file -- the version created by apktool b -- onto a Windows machine, and opened it with 7-Zip (switching to Windows was just so I could use the precise program suggested in the answers). I can't find the files that it has been suggested that I delete though. I see
AndroidManifest.xml
classes.dex
resources.arsc
assets/smallkez.png
res/drawable/ya.png
and that's it.
In summary then, I seem to be failing at step 5 of DarkXphenomenon's solution (at the time of writing). If I download the "after" file onto my phone, and try to install it, I get the incredibly informative error "! Application not installed" and my only option is to click "done".
Unfortunately I still don't know whether I am trying to do the impossible, i.e. whether googling around is leading people to solutions which used to work but no longer do, or whether I am just missing something stupid.
This is such a fundamental issue for me! My phone, out of the box, has about 21 megs of free memory, and my sd card has gigabytes and gigabytes.