Adobe-Runtime-Support
Adobe-Runtime-Support copied to clipboard
This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered error
just in case some one updated target sdk to 34 in ANE and got this error "This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered" while building the APK.
if you are using
<manifestAdditions><![CDATA[ <manifest android:installLocation="auto">
in your manifest just change it to
<manifestAdditions><![CDATA[<manifest>
Having the same issue, but this does not help.
you can check XML markups or attributes in your manifest, remove one after one and test until you find the one that causing the issue.
Hi @ajwfrost ! @nboy1 fix doesn't work for me. AIR SDK 51.0.1.1
Error:
adt.cfg:
Android Studio SDK and tools:
Descriptor
(as you can see, gradleVersion and androidGradlePluginVersion does not help):
adt.log: adt.log
@cleverbeapps Hi, I think it doesn't have any relation with the Gradle or Android Studio version. I've spent 3 days debugging. I've updated everything from Android Studio, Gradle, and Apache Ant to Java version. The only thing I didn't update was my Windows OS : ) I think it's a descriptor issue; maybe they deprecated some features in the XML structure or something. The first thing to test is to close Adobe Animate and rename the descriptor from 'descriptor-android.xml' to 'descriptor-android-old.xml'. Then, open your project and export the APK as usual. Adobe Animate will automatically generate a descriptor for you without these declarations and attributes. If it succeeds in generating the APK, then the problem is in the descriptor. After that, we will know where to start.
@nboy1 there is the same not closed issue #https://github.com/airsdk/Adobe-Runtime-Support/issues/2608 I've tried to apply the workaround, described there, but with no luck. So, we need to have confirmation from Harman's side, that the issue appears on their side too, since AIR SDK 51.0.1.1 is affected.
Hi @cleverbeapps
Thanks for all the details and logs .. the error isn't specifically about that "SDK XML version" but it does imply some incompatibilities between all the various Android/Gradle/Java settings that we have going on here...
The actual error:
ERROR:D8: com.android.tools.r8.kotlin.H
Execution failed for task ':app:desugarDebugFileDependencies'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.DexFileDependenciesTask$DexFileDependenciesWorkerAction
> Error while dexing.
Although that doesn't really help!
The environment then:
Java version: 11
Gradle version: 7.5
Android Gradle plug-in version: 7.4.0
Android build tools version: 35.0.0.rc3
Android SDK version: 34
Android platform tools version: 35.0.1
macOS - presumably a recent version
We'll try to replicate this and see whether we can reproduce it..
In the short term, in the config file you can try setting KeepAndroidStudioOutput
to true
and then opening the resulting "AndroidStudioProject" folder, and try building from there..?
thanks
Hi @cleverbeapps -> just to confirm, we're not seeing this problem when we try a simple test app with the environment as described .. I'm wondering if it's related to the use of ANEs or custom resources. Are you able to create any simple/smaller test case that exhibits the problem whilst not having any private/confidential stuff in it, that you could then share?
thanks
Hi @ajwfrost Indeed, I removed all ANEs, reinstalled and regenerated apm and descriptor, and everything works now. So, I need to figure out, what exactly ANE causes the problem, there are a lot of them in the project.
Hi @ajwfrost The problem was with InAppBilling ANE. Hi @marchbold After "apm uninstall com.distriqt.InAppBilling" and regenerating the descriptor - everything works. Could you, please, update InAppBilling with the latest android sdk and tools? (I've created the related issue in the ANE-InAppBilling repo)
Edited @ajwfrost @cleverbeapps i don't want to confuse you, it's building APK now with : 'minifyEnabled true' or 'minifyEnabled false', and with 'manifest android:installLocation="auto" ' in descriptor, i don't know what i've changed.
my Android Gradle plugin version is : 8.4.0 my Gradle version 8.6 my build tools 34.0.0 my compileSdk 34 minSdk 21 targetSdk 34 and everything is working fine now. thank you.
Hi @nboy1 Thank you for info. Are you using InAppBilling ANE and APM in your project?
@cleverbeapps no i'm using only a Admob ANE that i've created. i hope you get a solution with InAppBilling ANE, i've tried to find the permissions and attributes that InAppBilling ANE use but i couldn't find it, i think it's not open source ANE anyway, mean i will not be able to see source code, i hope the owners of it find a solution soon for you.
Please set the minimum sdk version to 24. Our latest updates require this minimum version now.
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34" />
Thank you @marchbold Yes, now it works🙏🏻
just in case some one updated target sdk to 34 in ANE and got this error "This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered" while building the APK. if you are using
<manifestAdditions><![CDATA[ <manifest android:installLocation="auto">
in your manifest just change it to
<manifestAdditions><![CDATA[<manifest>
Please set the minimum sdk version to 24
@marchbold thanks for that -> seems really weird that we get an error in the D8 tool based on that, would definitely be good if we could get a better error output...
In the IOS platform extension files we have sdkVersion
fields .. do you think it would help to have a minSdkVersion
field in the Android platform extension XML files?
@ajwfrost Generally apm handles this , but we have missed something with the InAppBilling update. I'm looking into it.
I don't think there's a need for a separate item, the manifest addition is fairly simple.
Please set the minimum sdk version to 24. Our latest updates require this minimum version now.
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34" />
Any chance this could be added to the documentation for the distriqt ANEs somewhere if it's not already? I've only seen the requirements mentioned on the main pages for each ANE, and I believe they all show iOS 9+ and Android 19+ at the moment. Would be helpful to know of any requirements like min sdk, and I think the -swf-version requirement changed at some point too. Especially when updating older apps each year I usually just go through the docs and check what I need to change in my application XML for the latest ANE version, so it'd be helpful to see a callout somewhere for that if possible!
For me the issue was after updating Android Studio to JellyFish 2023.3.1. I use the emulator with a final stable API 34, not with api 35 rc. I deleted from visual studio all rc Android SDK build-Tools 35 and solved the issue.
@ajwfrost Been looking into this a bit more and I actually can't find any of the libs requiring 24 so this may actually be an issue in AIR. I had just assumed one of the dependencies had increased it but normally apm should have found this so I've been digging manually through all the dependencies and can't see anything.
Additionally after the build fails I can open the AndroidStudioProject in Android Studio and the project builds and works on a device.
So I wonder if there's an issue with the gradle version in the AIR SDK?
Seems the issue is related to one library: play-services-measurement-api:22.0.0. Removing this jar from the com.distriqt.playservices.Base extension removes the issue, but this library is used by several other extensions so removing it is not really a solution.
I have found a similar issue reported here: https://github.com/facebook/react-native/issues/41653 but the resolution was to use minSdkVersion 24.
Hi
We've also been looking at some of these sorts of issues as we're also trying to update the build environment used for the initial AIR runtime classes compilation... and there seem to be all sorts of inter-dependencies.
- build tools that are used will mean there's a dependency on a particular version of the Android Gradle Plug-in
- which also means there's a dependency on a particular version of Gradle
- and also a particular version of Java
- with the 'compileSdk' and 'minSdkVersion' also seemingly affecting things...
Currently ADT will just use the latest available build tools, and it's possible to also adjust the versions of the Android Gradle plug-in and the Gradle version itself, but any dependency on a Java version would then be up to the user too (i.e. we don't yet have intelligence in the tool to warn of any incompatibilities in the environment).
I can open the AndroidStudioProject in Android Studio and the project builds
This is where I would love to know how the project builds! i.e. what it's actually executing, in terms of the gradle process/arguments/environment etc. All the ADT tool does really is create that project and then run the gradle command to build it via the wrapper. I guess the wrapper files themselves are ones that may be a little old now, so we can check if there are updates needed - but there's risks there as things aren't necessarily backwards compatible :-(
Summary -> if you've got a set-up where you can build with an Android Studio project that ADT generates, but not directly from ADT, then we definitely need to investigate and should be able to work out the problem!
Yeah if you just add that extension (com.distriqt.playservices.Base) to a project with a minimum sdk version < 24, you'll get this issue. i.e. will build from Android Studio but not from adt.
We're just advising people to update to 24 at the moment but seems like there might be something more at work here.
Hi
We've just managed to reproduce this both in the ADT command-line build, but also in the generated Android Studio project... although it may be because the Android Studio version is a little old? But, with a few updates (to the build.gradle files that we generate) and the use of later Gradle/AGP versions, it's now building. Will check that this all still works properly (!) and then put in the updates needed to conform to later AGP requirements... hopefully this will solve it!
thanks
Ah that's brilliant news, I might roll back our airpackage then and remove the min sdk v 24 requirement.
For me the issue was after updating Android Studio to JellyFish 2023.3.1. I use the emulator with a final stable API 34, not with api 35 rc. I deleted from visual studio all rc Android SDK build-Tools 35 and solved the issue.
this really helped