AIR application and Android emulator made my progress stuck for days. Running my app on emulator gives me this error:
Could not find class 'com.adobe.air.AIRWindowSurfaceView$3', referenced from method com.adobe.air.AIRWindowSurfaceView.DoSetOnSystemUiVisibilityChangeListener
If you only want to know the answer, here it is:
Create an emulator with Android OS version >= 4.x, or if you can, force emulator to use Armeabi-v7a as CPU
UPDATE
Additional setting is required if you work with Stage3D on emulator. You'll need to check "Use Host GPU" when creating the Android AVD. Or else you will receive "Context3D not created" message.
Thanks to Rafael Alvarado for this suggestion.
CONTINUE
Thats it, and I hope that saves your day. Now continue to my story.
While the app is working properly on any Android devices. App also runs smoothly on Android emulator before I updated everything from Android SDK and AIR SDK. This quite gives me a headache as I want to test my app on the go. What made things worse is that updating AIR SDK, or changing application.xml, or switch between AIR packagings is not helping at all.
I googled this bug and saw people seeking for clue for this problem on many tech forum. But many, if not all, of the thread has zero people answered or commented. Perhaps because this problem is something that should be easily solved or not many people stuck with this problem.
Puzzle is a bit solved when I read an answer from admin of an Adobe forum, where people asking for AIR app on Windows machine, stated that AIR won't run on x86 engine. But that is not the exact answer, as my emulator OS runs on Arm CPU, that gives me no problem before I update everything.
As a side note, while project is continued by debugging process done on device, this emulator bug is really annoy me.
The problem answered when I put Armeabi-v7a as engine, the app is running perfectly. So the answer is not by upgrading AIR SDK but pushing emulator to specifically runs on armeabi-v7. Put AIR on that CPU, and the app will run as we expected.
Why I can't come with this answer previously is that because I want to run the app on minimum OS Android 2.3, and Android AVD doesn't give you an option to choose engine type on that OS version, at least not anymore once you equip yourself with all those available AVD presets. Default CPU is ARM for any OS version lower than 4.0.
Long story short, now I continue debugging my app on emulator smoothly as before.

I was wondering about this! Thank you, awesome to test on the emulator. One thing, if you are running your AIR App using Stage3D. You need to check "Use Host GPU" when creating the Android AVD. If you don't you will receive a Context3D not created... message.
ReplyDeleteThanks again for the great article.
Rafael