Problem with dependencies when changing deployment from simulator to device

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

Hello,

I have just updated to SDK 2.1.2, using the latest Titanium Studio (2.1.2.201208301612). After running fine on the simulator, I deployed to my iPad, but I could not instantiate my 2nd window.

Then when I run again on my simulator, I get the following error while the 2nd window is being created:

{src} var olt = Ti.UI.create3DMatrix(); {/src}

[WARN] Attempted to load TiUI3DMatrixProxy: Could not find class definition. [ERROR] Exception in event callback: { line = 91; message = "invalid method (create3DMatrix) passed to UIModule"; sourceId = 257901152; }

If I do a clean build / delete the build directory (what others have had success with), the problem goes away. Then every time I deploy to my iPad, it happens again. As it is, I cannot get the application to work at all on the iPad.

Could this be a problem with the new Studio, since it is now happening with 2.1.1 and 2.1.2 SDK?

Thanks, Vernon

— asked 9 months ago by Vernon Chin
1 Comment
  • if you go to previous versions and do a clean build, also updating your tiapp.xml... do you see the same behavior

    — commented 9 months ago by Aaron Saunders

1 Answer

I have found the problem; it may also have affected the previous versions. I was testing a window class to be used for both iPad and Android tablet configurations. The file exists in the filesystem as .../ui/tablet/android/SplitWindow.js, and is require()'d for both configurations in my top-level controller class.

It appears that for the iPad simulator build, the file is included and properly referenced. But the iPad app build ignores the js files because it is considered an 'android' subdirectory (the file and symbols do not appear in the build log), and stops processing at the require(). The problem does not go away until the next clean simulator build.

After moving the file up a subdirectory, everything works as expected.

Just another gotcha with this versatile but fickle platform.

Your Answer

Think you can help? Login to answer this question!