1 person found this helpful
There are no particular settings that I know of that would prevent an AIR app from running. And if there were, I would expect that it would kill the app altogether and not leave the process running in the background. I assume that you have rebooted since the problem started.
Does your app save data, use the EncyptedLocalStore class, or use a database and read it before opening a window? It is possible the new version is having a problem with data left behind by the previous version. When you uninstall or reinstall an AIR app, the app's data is not deleted. You might try deleting anything in:
C:\Documents and Settings\user\Application Data\applicationID\Local Store
(where user is the user name and applicationID is the id of your application).
Another way to test this would be to create a temporary version of the app with a new application id, name, and file name in the app descriptor. Thus essentially creating a brand new app for this user.
I do have a SQLite database installed when the app is installed, and when I have a new version of the app I usually rename the db file that is created to avoid old data issues.
But the interesting thing is that when I look on that user's pc in that directory, there is no listing for my app. It's there on other pcs where the app runs correctly, so perhaps the SQLite file is not being installed correctly. Any idea what would prevent that from happening?
I ran the install log and I'm including the contents to see if you can make any sense of it
. The only thing that sticks out is a line "Application not located", which I highlighted below. Otherwise it looks like it installed
just fine. I appreciate your taking a look at this.
Starting app install of file:///C:/Documents%20and%20Settings/Andrew.esposito/Desktop/ROI_CalculatorAir-060310.ai r
UI SWF load is complete
Unpackaging to C:\Documents and Settings\Andrew.esposito\Local Settings\Temp\flaA2.tmp
unpackaging is complete
application is bound to side-by-side version 1.0
application is bound to this version of the runtime
app id ROI-CalculatorAir3
pub id 579DB9134D64DA8D12906F2BE8761198D0983B68.1
Application not located
Waiting for user confirmation
User confirmed action: install
creating native installer in: C:\Documents and Settings\Andrew.esposito\Local Settings\Temp\flaA3.tmp
native installer creation complete
Destination for installed application is C:\Program Files
Installing C:\Documents and Settings\Andrew.esposito\Local Settings\Temp\flaA3.tmp\setup.msi
Execution complete; beginning commit phase
Re-launching application from C:\Program Files\ROI_CalculatorAir3\ROI_CalculatorAir3.exe
starting cleanup of temporary files
application installer exiting
That line simply means that the installer could not find an existing, installed version of this application. There doesn't appear to be any anything amiss in the install log. So after installing and before running the app, the database file that is part of your application is still missing?
Are you updating the database in place in the application directory? Or do you copy it to the application storage directory before using it? Not necessarily related to the core issue, but writing to the application directory is prohibited on some OS configurations.
This app has been in the prototype stage for awhile and as such I make substantial changes to the database. Early on, I found that installing a new version of the app does not install a new version of the db, so I usually give the db a distinct name based on date, so for example, my latest code has this line in it:
var dbFile:File = File.applicationStorageDirectory.resolvePath("roiCalc060210.db");
This way I'm ensured a fresh version of the db is installed with all the latest changes.
My first thought was that it was an OS security setting somewhere preventing the install of the db but I don't know what kind of settings would prevent this, especially as it's only on a handful of machines. Any ideas where to look?
Are you copying a template database from the install, or recreating the database if it doesn't exist? Either way, it doesn't sound like your application ever finishes initializing, so it never copies or creates the database in the application storage. Possibly the absence of the database is a red herring.
Do you wait for some initialization complete before displaying your application window? Is there a way that you can verify whether this initialization code completes?
The application storage directory should always be writable, but I'm not that familiar with Windows security and permissions.
I am recreating the db if it does not exist. The db initialization script is the first to run and everything else comes from it. If I could reproduce the error locally I clould use trace statements in debug mode to follow its course. Do you know of a way to write any debug error messages or trace statements to a file, the way we did for the install log?
You could open a text file and write to it.
If you have sufficient access to the problem machine, you can run an installed app via adl to view trace statements in the command window. Pass the installed application descriptor and the application root directory as parameters to ADL. (See http://help.adobe.com/en_US/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7fd7.html for more info on ADL.)