Announcements
The Scaleform forum is now read-only. Please head to the Gamedev site for product support.

Scaleform 4.4 Mobile SDK - Android Deployer - Fix Validation

Scaleform 4.4 Mobile SDK - Android Deployer - Fix Validation

adjm
Alumni Alumni
3,639 Views
27 Replies
Message 1 of 28

Scaleform 4.4 Mobile SDK - Android Deployer - Fix Validation

adjm
Alumni
Alumni

Hi All,

 

After conversing with several of you via PMs I think I've gotten the Android Deployer stabalized to the point where I wanted to open it up to broader testing.  The root cause of the issues was a bad merge from a newer codebase that we did because we wanted to get you all the latest and greatest features from the commercial SDK.

 

Anybody who is currently evaluating or has already purchased the Scaleform Mobile SDK for Android is welcome to participate in this thread.  However, I reserve the right to delete posts if directions are not followed or things get carried away.

 

Instructions (also included in the file below as Update_Readme.txt)

 

Please download the following file:

 

https://autodesk.box.com/s/8ptnpzlnrzhew3saf4uky8wigybwv42z

 

Please follow these steps to ensure you have a clean working environment:

  1. Download and extract a clean copy of the Scaleform 4.4 Mobile SDK into a new directory:
    http://gameware.autodesk.com/downloads/scaleform/sf_4.4_mobile_android.zip

  2. Copy the following file from this archive into the clean copy of the Scaleform SDK, overwriting the existing file:
    Copy <Extracted Archive>\Bin\Deployer.exe -----> <Scaleform SDK>\Bin

  3. Delete the following folder from your copy of the SDK:
    <Scaleform SDK>\Integrations\Android\FxShippingPlayer

  4. Copy the following directory from this archive into your copy of the SDK:
    Copy <Extracted Archive>\Integrations\Android\FxShippingPlayer -----> <Scaleform SDK>\Integrations\Android

    NOTE: the "Shipping" in FxShippingPlayer refers to the fact that these are the files used to build a shippable player via the Deployer that looks for content inside the APK package via the Android AssetManager (e.g. assets://).  It does NOT refer to just the Shipping configuration of same.  This is as opposed to FxPlayerMobile which is our normal example player built via Make which looks for content in /sdcard/.

  5. Don't forget to place a copy of the Scaleform License Key in the root directory of the SDK

  6. Please test thoroughly with any and all example content you have.

NOTE: If ANY errors occur, please copy the ENTIRE output from the Deployer log with the steps below, and paste it into a separate text file:

    a. Click in the Log area at the bottom of the Deployer window
    b. Hit Control-A (the control key plus the A key at the same time) on the keyboard
    b. Hit Control-C on the keyboard
    c. Hit the Windows key on your keyboard
    d. Type "notepad.exe"
    e. Hit Control-V on the keyboard
    g. Save the file somewhere you can find it like your Desktop with a name you will remember
    h. Menu->File->Save
    i. Attach the file to the appropriate thread in the forums (pasting it directly into the thread will get your post deleted)

REMEMBER: I can't fix issues that I can't see.

Once all known Android issues are resolved I will move onto iOS.

Reply
Reply
3,640 Views
27 Replies
Replies (27)
Message 2 of 28

Anonymous
Not applicable

Hi Jeremy!
First of all, thank you for your dedication to this project and your great help.
It is spectacular as it progresses thanks to your hard work.

 

I have great news. All errors associated with loading files have disappeared !!

Unfortunately, we have found other small problems. I will detail them in order of importance:

 

1) sf4.4 android, certain app that abort execution at a given time, if they are compiled in "SHIPPING / RELEASE", but work well if you are compiled in "DEBUG".

 

I mean, we created a swf in flash, so we tested in GFxMediaPlayer and everything works fine. We do a Deploy in "DEBUG" mode, we tested the app on my Android device, and everything works perfect.
But if we make a Deploy on "SHIPPING" or "RELEASE" mode and tried the app on the android device, at one time, running an AS3 instruction set execution is aborted.

 

We have worked hard to come up with the specific problem, and we have finally proven how when device execute a specific command of the famous library GreenSock: TweenMax in conjunction with a OnComplete (), the execution is aborted.

 

The strange thing about this is that problematic swf works fine:
- With GFxMediaPlayer 4.4
- With SF4.4 android in debug mode.
- With SF4.4 ios, ios and SF4.2 SF4.2 Android.

 

I have included a file attachment with a problematic flash.swf and source files in Flash CS6. This is an extremely simple example. Simply deploying with this flash.swf in "debug" or "shipping/release", you can replicate the problem. 

Jeremy, tell me if you need more information about this. I think, though I detected this problem associated with the specific execution of an instruction, there must be something more general...

 

 

2) When we make a Deploy, our app ignores the setting of "ENABLE ORIENTATION". We mark only the first, "portrait", but then the screen rotation works in all orientations.

 

 

Thanks again for your support, Jeremy!!!!!!!!!!!!!!!!!!!!!!

Reply
Reply
0 Likes
Message 3 of 28

Anonymous
Not applicable

I'm having a similer issue with shipping vs debug

 

I can't get either complier to run on the deployer (have attached the error I'm receiving)

 

If I try and build in terminal I can get the debug version to work ok, but the shipping version I get errors (also attached)

Reply
Reply
0 Likes
Message 4 of 28

adjm
Alumni
Alumni

Azicuetano,

 

I've been able to reproduce both of your issues.  Thank you for the concise bug report and reproduction case.  The orientation is trivial and just something I overlooked.  The crash is related to the higher optimizations in non-debug builds and this type of bug can be difficult to track down.  I've made a bit of headway but am still working on it when I can.

 

Thanks,

 

-Jeremy

Reply
Reply
0 Likes
Message 5 of 28

adjm
Alumni
Alumni

fiveforty,

 

It looks like the update wasn't applied properly because it is still trying to use FxPlayerMobile.cpp:

 

Copied player source file into project directory at /Users/404interactive/Desktop/scaleform_4.4_android/LocalApps/counting1/FxPlayerMobile.cpp

 It's absolutely required that you do the delete in step 3 before applying the files in step 4.  Also, the easiest way to clean out the cruft left behind from bad builds is to follow step 1 to start with a clean setup.

 

Thanks,

 

-Jeremy

Reply
Reply
0 Likes
Message 6 of 28

adjm
Alumni
Alumni

new version up...time 4 sleep...zzzzzzzzzzzzz.

Reply
Reply
0 Likes
Message 7 of 28

Anonymous
Not applicable

Jeremy,

 

both these errors occured after doing a clean setup and copying over the new files.

 

I just download a new version and tried it again just to make sure, but I'm still getting the same error.

Reply
Reply
0 Likes
Message 8 of 28

Anonymous
Not applicable

Hi Jeremy,
I tried the last fix you posted, but with this fix I can't do a deploy. Attached to this post you will see the log file with errors. Most are of the type:

[exec] ../../../../LocalApps/quizzersLastFix/FxShippingPlayer.cpp:436:23: error: 'pHudMovie' was not declared in this scope

 

With the earlier version of this fix, I detected other problems which I detail below:


1. When deploying (even in Shipping):
Within AndroidManifest.xml, not including property: android: debuggable = "false".
Our app is rejected by Google because it does not contain this property within the tag <application> :'- (


2. When deploying (even in Shipping):
The app is signed like debug. I can see in the log: "[apkbuilder] Creating quizzers-debug-unaligned.apk and signing it with a debug key ...". This causes the rejection of Google.

How could I create the app unsigned or create the app with my own signature ".keystore"?

 

For now, I've managed to remove the debug signature and sign the app with my own signature ... But I pointed this in case you will consider that "Scaleform Mobile Deployer" should perform these actions related to the sign.

 

But I have not gotten any way to enter the key <android: debuggable = "false">...

 

 

Thanks Jeremy!

Reply
Reply
0 Likes
Message 9 of 28

adjm
Alumni
Alumni

I fixed the issues with FXSMP_ENABLE_HUD and uploaded a new package.  Sorry about that, I apparently failed to retest shipping after adding the HUD toggle but I wanted to make sure I got that in since I know you've had problems with it at least on iOS.

 

Regarding release signing, that is definitely something we would like to add in the future.  However managing sensitive information such as your release keys should be handled with great care, which is why until we can come up with a fully robust solution, this is left as a manual process for the developer when it comes time to ship:

 

http://developer.android.com/tools/publishing/app-signing.html

 

As to the AndroidManifest debuggable flag, it is automatically set based on the type of build you are doing.  Obviously if you only use the Deployer to build, since there is no support for release signing, it will always be a "debug" build because it's signed with a debug key.  We can talk offline about the steps required to run a release build because they are fairly complex.

 

I would recommend holding off on app submissions for a bit while we iron out these few remaining issues.

 

Thanks,

 

-Jeremy

 

Reply
Reply
0 Likes
Message 10 of 28

adjm
Alumni
Alumni

I'm not really sure what to tell you fiveforty, you can clearly see that Azicuetano isn't having these issues with the Deployer.

 

For the first issue "deployer.txt", you're definitely not using the most up-to-date Deployer.exe.

 

For the second issue "terminal error.txt", I haven't included all the necessary changes that would be required to run the make based build.  However there should be no need to do so because you don't have the source code for the libraries anyways, so all it does is rebuild the 3rdparty libs and seems to be failing on the .def file you've possibly created with the Deployer, so there may be some incompatibility there.

 

For now we are focussing on making the Deployer work the best it can so I can release a new package for everybody.  Please try one more time to extract the package, make sure the absolute path doesn't have any spaces in it, and extract the latest scaleform_4.4_android_deployer_fix.zip and DON'T run make, just simply use the Deployer like normal.

 

Thanks,

 

-Jeremy

 

 

Reply
Reply
0 Likes
Message 11 of 28

Anonymous
Not applicable

ah, of course! I'm not using the Deployer.exe as I'm on a Mac.

Can you update the Deployer.app so I can try running that??

 

I've tried running the .exe through Wine, but thats a major headache as the paths to Java and Ant don't want to play nicely together.

Reply
Reply
0 Likes
Message 12 of 28

Anonymous
Not applicable

Hi Jeremy,

The latter fix works great! I can now perform Deploy and the project compiles fine 🙂

 

I have solved the problem with the signature "debug" deleting the signature file from .apk (from MAC, using command: zip -d my.apk "META-INF*") and signing it again with my developer .keystore (http://developer.android.com/tools/publishing/app-signing.html)

 

I have solved the problem that Google Play reported about the property android:debuggable="false" including this property within the <Application> in /Integrations/Android/FxShippingPlayer/base/AndroidManifest.xmlbase
I found it very difficult to find this solution... '-_-

 

Also, for Google to recognize my app compatible with tablets, I had to modify this key "AndroidManifest.xmlbase": <uses-sdk android: minSdkVersion = "11" android: targetSdkVersion = "14" />. With a value of targetSdkVersion<11 Google Play does not recognize the compatibility of the app with tablets.

 

 

At present, we have our app approved at Google Play, and without any warning of trouble. We are waiting for our customers give us permission to publish it.

 

Thank you very much to all the Scaleform team is special to you, Jeremy. I hope to present to all the app when published. Greetings to all!!

Reply
Reply
0 Likes
Message 13 of 28

adjm
Alumni
Alumni

That makes sense.  Let me see about building the Mac OS X Deployer and doing a quick round of testing.  Stay tuned.

Reply
Reply
0 Likes
Message 14 of 28

adjm
Alumni
Alumni

I'm glad you were successful in getting your app approved.  Customizing the AndroidManifest.xml is a typical part of Android development.  We hope to make setting the API levels available in a future update as well as provide some method for signing with release keys.

 

There are easier ways to accomplish these things, such as by adding entries to local.properties and manually calling "ant release" from the command-line.  This of course assumes prior knowledge of Android development in general and the use of ant specifically, a requirement we hope to eventually eliminate.  The important thing is that you've been able to complete your project, congratulations!

 

-Jeremy

Reply
Reply
0 Likes
Message 15 of 28

Anonymous
Not applicable

Thanks Jeremy for all your help

 

however don't bother rushing on our account getting a Mac Deployer sorted as we've just been informed that we're unable to purchase a license

only customers in the US and Canada may now purchase a license... the rest of the world are now block 😞

 

thats 2 months' worth of development time wasted for me 😞

Reply
Reply
0 Likes
Message 16 of 28

Anonymous
Not applicable
It appears that the first person I spoke to had their information wrong. After speaking to a very nice lady in Business Operations we've got it all sort! 🙂
Reply
Reply
0 Likes
Message 17 of 28

adjm
Alumni
Alumni

Back on the horse eh? Glad to hear it!  I've got all my changes ported over to the Mac Deployer but I'm still trying to solve a crash on Deploy.  I will add it to the update package ASAP.

 

-Jeremy

Reply
Reply
0 Likes
Message 18 of 28

adjm
Alumni
Alumni

Hi fiveforty,

 

Thanks for your patience and  I apologize for the delay on the Mac Deployer.  The code is based on the older Qt 4.x and in order to debug some issues I needed to update it to the latest 4.8 so it would work with a recent Mac and it was more difficult than it should have been.

 

I'll be posting an update to the original package just as soon as the build finishes on the build server.  Please try it out at your earliest convenience and let me know if you find any issues.  Once you've confirmed everything is working we will post new full Android packages.

 

Thanks,

 

-Jeremy

Reply
Reply
0 Likes
Message 19 of 28

adjm
Alumni
Alumni
Posted. I also updated the instructions a bit so be sure to check them out as well.

-Jeremy
Reply
Reply
0 Likes
Message 20 of 28

Anonymous
Not applicable

Hi Jeremy

 

The Mac Deployer seems to be working fine now. Thanks so much for sorting it out!

Reply
Reply
0 Likes