Adobe-Runtime-Support icon indicating copy to clipboard operation
Adobe-Runtime-Support copied to clipboard

AIR 51.2 Publishing issue

Open yvant opened this issue 7 months ago • 3 comments

I used to compile 2 APKs with FlashDevelop to upload on Google Play: one ARM7 and one ARM8. Using the latest AIR SDK (51.2.1.3), I got some changes leading to some errors on google play:

Image As seen on the screenshot, the newest builds at the top have the same ABIs (4) instead of mentionning the ARM like it was the case beforehand.

Because of that, I got this warning message from Google Play: This APK will not be served to any users because it is completely shadowed by one or more APKs with higher version codes. Remove this APK from your release or review the targeting and version codes of the APKs that you are including in this release.

When I check the APKs in the Google Play catalog, I can see that Native platforms for the 51.2 APK are arm64-v8a, armeabi-v7a, x86, x86_64, while the previous ones were just arm64-v8a or armeabi-v7a.

I tested the 51.2 APK that I compiled for ARM8 on a GalaxyS5 (ARM7), since it apparently includes ARM7. I got a black screen, but no crash. I even saw the Google Play auto login banner.

For now, I'll just revert to the previous AIR SDK, but here are some questions:

  • should I only use only one APK? It's not very comforting since it didn't work on the SGS5
  • should I use AAB now and drop the 2 APKs?
  • another solution?

yvant avatar May 11 '25 15:05 yvant

What have you set for the buildArchitectures in your app descriptor? Might have something to do with that?

Personally we use AAB for all our releases now, much simpler to upload a single package.

marchbold avatar May 12 '25 00:05 marchbold

I don't have a buildArchitecture tag in my application.xml. The latest additions for the recent CrashUtils ANE are these:

<gradleVersion>8.9</gradleVersion>
<androidGradlePluginVersion>8.7.3</androidGradlePluginVersion>
<manifestAdditions><![CDATA[<manifest android:installLocation="auto"> => <manifestAdditions><![CDATA[<manifest android:installLocation="auto" xmlns:tools="http://schemas.android.com/tools">

Can it be related to that?

yvant avatar May 12 '25 00:05 yvant

I disabled the CrashUtils ANE and reverted the changes from the application.xml and it solved the issue. Too bad I can't use this ANE though.

yvant avatar May 12 '25 09:05 yvant

I had a similar issue regarding ABI with a newer AIR SDK (https://github.com/airsdk/Adobe-Runtime-Support/issues/3825#issuecomment-3155858885). There was no modification from the application.xml file however, but I do wonder if there is somehow a way to use this ANE with 2 APKs since Google Play mentionned the same ABI issue.

yvant avatar Aug 09 '25 10:08 yvant

Thanks @yvant for highlighting this, I remember seeing this but don't think I'd realised the implications.

If an ANE (via gradle etc) is adding native libraries, then the packaging for an APK might end up pulling all of the different ABI options in to the APK which then causes issues per the above message. So we're adding an extra output to our build process for APKs where we will add an abiFilter to ensure only the requested ABI(s) are included.

See the patch version of ADT available at https://github.com/airsdk/Adobe-Runtime-Support/issues/3825#issuecomment-3170397473 which should then be in 51.2.2.4 and later updates.

thanks

ajwfrost avatar Aug 09 '25 12:08 ajwfrost