AIR Native Extension issue - actionscript-3

I built an AIR native extension with following setup:
Visual studio 2005 for building my dll
Flash CS6 IDE with AIR SDK 3.2 to create SWC from my AS3 source
The namespace version of my ANE is 33.1
ADT (AIR SDK 33.1)
I tested the ANE with FlashDevelop 5.3.3.1 and the ANE works as expected on a machine that I use for development. However, when I test the same ANE in FlashDevelop on a different machine, the AIR can't find a necessary method in the native side implementation (Error code #3500). I am using the same version of FlashDevelop with same AIR SDK (33.1) in both machines.
It seems that for some reason AIR could not load the dll in second machine (but does so in my development machine), and I am not sure why. Any help would be highly appreciated.
Thank you.

You are probably missing some of the dependency dlls, most likely part of the vc++ redistributable package or potentially .net if you are using any of that functionality.
Try to install the VC++ redist on your test machine:
https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0

Related

Setting up Cocos2dx project with QtCreator on Windows using LLVM

I've been tasked with porting a MacOS project to Windows 10.
It consists of modified Cocos2dx library which is built as a part of the the project. The library contains several objective-c++ files, so I'm forced to use LLVM.
However, LLVM doesn't come with standard c++ library which Cocos2dx uses. I've tried pointing to MinGW include directory, I've tried installing Visual Studio and pointing to it's STL include folder, but there was always something missing.
How do I properly include STL in my project? Where do I get it?
I ended up installing Visual Studio with Win10 SDK. I then used win32-clang-msvc mkspec. The STL was included with Win10 SDK.

adobe air apk won't run on android 4.4.2

I have a android 4.1.2 device and my adobe air as3 apk runs on it. I also have a 4.4.2 device, and the apk doesn't run on that one. I am having a tough time finding out what's wrong, though. Has anyone found this problem too? I would love ddms output, like I am used to from eclipse, but I don't know how to start.
I've googled a little, but the problem seems to be mine alone. I am using Flash CS6 on a windows install as my development environment. Also, the AIR version on CS6 is 3.4.
Any help would be appreciated. I am using a captive runtime.
It's because of the old AIR version. Here's a link saying that the 'new' 3.9 now supports KitKat (Android 4.4.2): http://news.softpedia.com/news/Adobe-Air-with-Android-4-4-KitKat-Support-Out-Now-on-Google-Play-417056.shtml
Try updating your SDK AND your AIR on the phone.
here is the link to download latest air version
http://helpx.adobe.com/air/kb/archived-air-sdk-version.html
-open flash > help > manage air sdk > you can remove add new air here

Cant use NuGet to add Unity IoC to a portable class library

I am making a Windows Phone 8 application, however because I would like at some point to also publish this application for Windows 8.1 store I made the effort to factor out the application logic into a portable class library. All good so far.
Now being a good boy I want to use an IoC container, unity by preference (since I am familiar with it in desktop and Win Phone 8 only apps)
So here's my problem; the NuGet Unity package will not install into my portable application with this result:
Installing 'Unity 3.0.1304.1'.
Successfully installed 'Unity 3.0.1304.1'.
Adding 'Unity 3.0.1304.1' to Logic.
Uninstalling 'Unity 3.0.1304.1'.
Successfully uninstalled 'Unity 3.0.1304.1'.
Install failed. Rolling back...
Could not install package 'Unity 3.0.1304.1'. You are trying to install this package into a
project that targets 'portable-net45+wp80+win', but the package does not contain any assembly
references or content files that are compatible with that framework. For more information,
contact the package author.
So is there a unity that works with a PCL? or is this just a shortcoming of the NuGet package?
I failed to find any useful documentation on the P&P website to indicate what platforms it is compatible with, but I know it does support WP8 at the least since the NuGet package is quite happy with libraries targeting just that.
Any guidance from the community would be very welcome here I don't want to abandon using a PCL for my app logic if I can avoid it, but if it comes down to a toss up between that and NuGet for package management I will in order to keep the NuGet goodness.
Could this be related to NuGet and Portable Class Libraries - Package doesn't target any framework? that seems more related to making your own NuGet packages for use in your own PCLs.
Unity 3.0.1304.1 does not contain any PCL assemblies so you will not be able to install it into a PCL project using NuGet.
The Unity NuGet package contains assemblies that target the following frameworks:
.NETFramework 4.5
.NETCore 4.5 (Windows Store/WinRT)
Windows Phone 8
You can see these target frameworks if you open the NuGet package into NuGet Package Explorer or download the NuGet package and open it using a program that supports zip files such as 7zip or Windows built-in zip file support.
So your possible options are:
Just use Unity in your main Windows Phone 8 application.
Write your own IOC container.
Use an IOC container that supports PCL projects such as Portable.CommonServiceLocator.
Compile your own PCL version of Unity.
Use a later version of Unity 3.5 since this includes a PCL assembly targeting portable-net45+wp80+win8+MonoAndroid10+MonoTouch10
Updated: 2014-05-11
Unity 3.5 now includes a PCL assembly that targets portable-net45+wp80+win8+MonoAndroid10+MonoTouch10 which will install into a project that targets portable-net45+wp80+win.
There is no Unity for PCL, but you can use Ninject for example.

Symbol(s) not found for architecture armv7 - Flash Builder for Windows / iOS Native Extension

I'm attempting to run the example project for this Adobe Native Extension 'SongPickerANE' from Flash Builder on Windows onto an iOS device. I've run it successfully on the same device (and iOS Simulator) from Flash Builder on my Mac with AIR SDK 3.4, but it failed to run with 3.4 on Windows, as it couldn't get access to the required iOS SDK (6.1).
So, I've updated my AIR SDK on my windows machine, first to 3.5, and now to the current version 3.9, which seemed to sort out the iOS SDK issues I was having, but both failed to run with the following error:
java.lang.Exception:
Undefined symbols for architecture armv7:
"_objc_setProperty_nonatomic", referenced from:
-[SongPickerHelper setPickedItem:] in libcom.newpixel.air.nativeextensions.SongPicker.a(SongPickerHelper.o)
ld: symbol(s) not found for architecture armv7
Compilation failed while executing : ld64
From what I remember of it in the dim, distant past of my iOS development, this is some sort of XCode linking / Build Settings / Phases error? So to fix it, will I have to edit and recompile the ANE, or is there anything I can set in the Flash Builder project which uses the ANE to fix it?
If it requires recompiling the ANE, any tips / advice on where to start would be appreciated, as I've so far managed to avoid having anything to do with them, and I do find them slightly terrifying.
Many thanks in advance.

How to publish an app with Air 3.0?

I have overlaid Air 3.0 over the flex sdk. I have targeted swf version 13 and included 3.0 in the header of my xml file, is there anything else i need to do to get my app published with air 3.0.
Also is there a way to check what version of air the app has been published with once it has been published?
I am using flash builder 4.5 and osx.
You can get the AIR version at runtime using NativeApplication.nativeApplication.runtimeVersion
Edit:
Also remember that there are different SDKs for Windows and for OSX. The Windows SDK does not work on OSX and vice-versa. Attempting to do so results in a runtime error.
OS X doesn't really matter.
Your application descriptor has changed in format since AIR2.0 The easiest way to check this is create a new AIR 3 project and check the app descriptor xml for that application, and compare it to yours. You will easily find out the differences.
The AIR runtime version (as lukevanin said) can be read from
NativeApplication.nativeApplication.runtimeVersion
Then you can publish in the same way as before (export release build -> select certificates, etc)