Building on Android fails with false syntax errors

You must Login before you can answer or comment on any questions.

Perfect valid code, runs in emulators and on devices when building to device, but not when packaging for Google Play

It barfs on M.long = function(flt){ // some valid code here }

"Missing name after . operator"

and all sorts of similar nonsense-errors

Anyone seen this before and have a fix?

==================== [ERROR] /home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:161: ERROR - Parse error. missing name after . operator M.long = function(flt) { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:166: ERROR - Parse error. missing name after . operator M.short = function(flt) { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:168: ERROR - Parse error. syntax error } ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:171: ERROR - Parse error. syntax error M.grid = require(M.path.m + 'grid').create(M, ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:174: ERROR - Parse error. missing ; before statement width : M.screen.getWidth(), ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:175: ERROR - Parse error. syntax error }) ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:177: ERROR - Parse error. syntax error M.showGrid = function(parent) { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:178: ERROR - Parse error. syntax error parent = parent || M.currentWindow ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:179: ERROR - Parse error. syntax error M.grid.createGrid(parent) ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:324: ERROR - Parse error. invalid return return M ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:325: ERROR - Parse error. syntax error } ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:327: ERROR - Parse error. missing ; before statement function getTiViewDefaultValues(key) { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:328: ERROR - Parse error. missing ; before statement switch(key) { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:329: ERROR - Parse error. missing ; before statement case 'borderColor': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:330: ERROR - Parse error. missing ; before statement case 'color': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:331: ERROR - Parse error. missing ; before statement case 'backgroundColor': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:334: ERROR - Parse error. unlabelled break must be inside loop or switch case 'backgroundImage': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:334: ERROR - Parse error. missing ; before statement case 'backgroundImage': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:335: ERROR - Parse error. missing ; before statement case 'image': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:336: ERROR - Parse error. missing ; before statement case 'html': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:337: ERROR - Parse error. missing ; before statement case 'text': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:338: ERROR - Parse error. missing ; before statement case 'title': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:339: ERROR - Parse error. missing ; before statement case 'url': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:340: ERROR - Parse error. missing ; before statement case 'value': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:343: ERROR - Parse error. unlabelled break must be inside loop or switch case 'borderWidth': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:343: ERROR - Parse error. missing ; before statement case 'borderWidth': ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:346: ERROR - Parse error. syntax error default: ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:346: ERROR - Parse error. unlabelled break must be inside loop or switch default: ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:347: ERROR - Parse error. syntax error Ti.API.error('trying to set viewproperty ' + key + ' to undefined (m.js line 195)') ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:350: ERROR - Parse error. unlabelled break must be inside loop or switch } ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:352: ERROR - Parse error. syntax error } ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:354: ERROR - Parse error. missing ; before statement function setPaths() { ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:368: ERROR - Parse error. invalid return return path ^

/home/esm/Documents/Dropbox/Titanium Studio Workspace/BuddyShop/build/android/bin/assets/Resources/m/m.js:369: ERROR - Parse error. syntax error

34 error(s), 0 warning(s)

1 Answer

long is a reserved word in js. Try to change it.

http://www.javascripter.net/faq/reserved.htm

— answered 10 months ago by Dan Tamas
answer permalink
13 Comments
  • yep - you're right. Apparantly compilation for the emulator runs at a different strictness level than when you compile for distribution. I never thought of long being a reserved word.

    Renaming the function removes that particular error, same goes for function M.short. This is code that has compiled fine in TiSDK2.0.1 ...

    I guess I have to comb my way through it and rewrite where necessary, or indeed possible, some of those errors look dodgy

    — commented 10 months ago by Esben Maaløe

  • forgot to say thnks :)

    — commented 10 months ago by Esben Maaløe

  • I always try to avoid all the var names that might conflict with the reserved words (obviously) OR with some names Titanium might have ( like parent for example).

    A good way would be (imho) to name the vars including maybe a shortened name of the app, like

    // app name is NewsReader
     
    var nr_long  =  something;
    just an idea :)

    PS - u're welcome :)

    — commented 10 months ago by Dan Tamas

  • Show 10 more comments

Your Answer

Think you can help? Login to answer this question!