Skip to main content
Inspiring
March 17, 2014
Question

Error 3003 - file doesn't exist on Android (but it does!)

  • March 17, 2014
  • 1 reply
  • 731 views

Hi there,

I'm doing something really simple - so there must be silly mistake somewhere here. I'm building my game with:

adt -package -target apk-debug -connect  -storetype pkcs12 -keystore "cert\mygame.p12" -storepass fd "dist\mygame-debug.apk" "application.xml" -C bin . -C "icons/android" .

With the swfs and required data files in the bin/ folder. That -C directive makes them work as root.

Then all I'm doing is:

var file:File = File.applicationDirectory.resolvePath("data.json");

var fin:FileStream = new FileStream();

fin.open(file, FileMode.READ);     // error 3003 triggered!!

The path is resolved to "app:/data.json" which is correct, since it lives in the apk in the same place the swf is.

So why am I getting error 3003? Any insight is greatly appreciated!

I'm building with Air 3.7.

Thanks!

This topic has been closed for replies.

1 reply

Projectitis
Inspiring
March 18, 2014

AIR 3.7 rings a bell - there was a path problem that was introduced between 3.6 and 3.7, but from memory it only related to SharedObjects.

Curious: What do you get if you insert

trace( 'File exists: '+file.exists );

After the first line?

My guess is that data.json does not exist at that location.  In this case a valid File object is still returned from resolvePath, but the file it references does not exist. 

I'm guessing it's in the bin directory and you are adding it via -C bin?  I'm not certain, but see if the file actually exists at app:/bin/data.json

var file:File = File.applicationDirectory.resolvePath("bin/data.json");

If that doesn't work, try using the -extdir command to include data.json in your package instead of -C?