Cordova target api version 35 or higher

I didn’t succeed. :frowning: I tried everything, but it won’t work.
The problem is that API 35 requires Java 17.
I switched to Meteor 3.2 and Capacitor, but I still have a lot of problems with creating native files (for both Android and iOS).

In the end, I will probably switch to pure JavaScript and capacitor because my application doesn’t have a server part. I’ll port Blaze to Handlebars and that’s it.

We’re aware of this and plan to release Cordova Android 14.0.0 for Meteor 3.3.1 soon (beta coming shortly). It adds support for Android API 35. With this update, you should be able to upgrade your Meteor 3 app and publish successfully to the app stores.

Support for Meteor 2.x will arrive later 3.3.1 if supported. We can’t guarantee it will work with Meteor 2.x apps because the new Cordova updates require Node 20+, whereas Meteor 2.x uses Node 14.x. It may remain compatible as previous updates, but we can’t be certain. We’ll try our best, but as time goes by, it becomes harder to sort this out.

Migrating to Meteor 3.x is increasingly urgent for native development. Cordova now requires specific Node versions, which could soon block Meteor 2.x users. Also, we will end maintenance on Meteor 2.x in December 2025 to focus on Meteor 3.x and future Capacitor integration.

5 Likes

Thanks @nachocodoner

Is the plan to have a seamless migration to capacitor or is it going to be a breaking here as well.

Thank you!

I eagerly await Cordova Android 14 support, hopefully not too close to the deadline since I suspect some of my Cordova plugins will have compatibility issues that I’ll have to resolve too :grimacing:

I’ll work on migrating to Meteor 3 in the meantime.

I’m happy to report that my app builds properly for Android Target SDK 35 using Meteor 3.1.1 rc2 :partying_face:

The Play Store accepts my build without warning and distributes it successfully to my testers

And all my Cordova plugins still work without any mods required

It’s a happy day :slightly_smiling_face:

Now I just need to fix all the bugs related to my Meteor 3 migration, but that was a frog I was going to have to eat at some point anyway

I’m looking forward to the final Meteor 3.1.1 release - thanks all

1 Like

@graemian awesome news! but just to double check, are you using 3.1.1 Meteor 3.3.1 or for Android API 35?

Sorry, my mistake. It is indeed 3.3.1.

From .meteor/release: METEOR@3.3.1-rc.2

1 Like

My migration is taking time, as too many changes are to be done, and too many packages.

However in 2.3x I tried building with target sdk set to 35 and it compiled. Has anybody else had similar experience and were they able to submit the app.

1 Like

Thank you for the update regarding the upcoming Cordova Android 14.0.0 release for Meteor 3.3.1 and its support for Android API 35.

I understand that Meteor 3.x will receive this update soon and that support for Meteor 2.x may arrive later if compatible. Since the new Cordova updates require Node 20+, and Meteor 2.x is based on Node 14.x, I realize compatibility cannot be guaranteed.

That said, could you please clarify:

  • Will there be a beta release or test guidance for Meteor 2.x to check compatibility with Cordova Android 14?
  • If support is not feasible, can you suggest a safe fallback or temporary workaround until migration is complete?
  • Is there a more precise timeline for the Meteor 2.x compatibility decision?

We are still using Meteor 2.x in production and are planning our migration to Meteor 3.x, so any insights or recommendations you can share would be helpful.

Thanks! Awaiting Cordova Android 14 support. I’ll start migrating to Meteor 3 to keep things moving smoothly.

A branch is already available for the likely 2.16.2 release, including Cordova 14 support. We successfully patched cordova-android to remove Node 16 API usage, since Meteor 2 still uses Node 14 and can’t resolve behaviors like the recently introduced copySync and fsp.copy APIs. As I was afraid of, we had to fork cordova-android and maintain a new version of this package. I was able to test it and the Meteor Cordova app runs successfully.

Now we need to release Meteor 2.16.2 for everyone to use. However, this has become a slow and manual process. Our CI isn’t as ready as Meteor 3 to publish new releases, and we expect to need some time to make it available. I can’t give dates yet.

What you can do now is start using a Meteor checkout to run and build your app. Clone the meteor/meteor repo, switch to release-2.16.2, then use <path-to-meteor-clone>/meteor <run|build|...> as your CLI to work with your Meteor app. This way you’ll get unblocked and be able to run and publish your Cordova app with latest SDK expectations. It’s also a way to double check and verify, which we appreciate.


I won’t stop insisting though that this is likely the last time we revisit Cordova in Meteor 2. Your migration to Meteor 3 is becoming urgent, so we can focus on Meteor 3 and bringing you not only the latest Cordova updates, but also next-generation tools for native integration like CapacitorJS.

If you have migration troubles, ask in the forums about them. I’ve also finished my Meteor 3 migration recently, even reviving a package that was blocking me. It’s now a major priority for every Meteor developer and company.

Start following the guide: https://v3-migration-docs.meteor.com.
There are many posts on the forums regarding Meteor 3 migration and tips from devs you can search for to complement. Even posts with more insights like Migrating to Meteor 3: a solo developer story - DEV Community

3 Likes

Hi nachocodoner,

Thanks for the guidance regarding Meteor 2.16.2 and Cordova Android 14 support.

I followed the instructions to run Meteor from a local checkout and attempted to install the dev_bundle using the provided scripts. However, I ran into an issue:

:x: Problem

When running:
Desktop/meteor-dev/meteor run
tar: Error opening archive: Unrecognized archive format
Failed to install dependency kit.

I then tried:

bash

CopyEdit

curl -LO https://github.com/meteor/meteor/releases/download/release%2F2.16.1/meteor-bootstrap-os.osx.arm64.tar.gz

But the downloaded file is only 9 bytes and not a valid archive. It appears the ARM64 bootstrap tarball is either missing or not published yet for Meteor 2.16.1 / 2.16.2.

:white_check_mark: What I tried

  • Verified that the install-from-bootstrap script is present and working
  • Tried using both curl -LO and curl -L -o methods
  • Checked both 2.16.1 and 2.16.2 GitHub release assets
  • Confirmed I’m on macOS ARM64 (uname -m returns arm64)

:question: Request

Is there a working meteor-bootstrap-os.osx.arm64.tar.gz available for 2.16.2 (or 2.16.1)?
If not, would you recommend building the dev_bundle manually via generate-dev-bundle.sh, or switching to an x86_64 bundle via Rosetta?

1 Like

Yes, please try to build the bundle yourself with scripts/generate-dev-bundle.sh, then try to use it as a CLI.

After updating the framework, I still have compatibility issues :
=> Running Meteor from a checkout – overrides project version (Meteor 2.16.2)
=> Errors while adding packages:

While selecting package versions:
error: Conflict: Constraint jquery@1.11.3_2 is not satisfied by jquery 3.0.0.
Constraints on package “jquery”:

  • jquery@3.0.0 ← top level
  • jquery@=3.0.0 ← top level
  • jquery@1.11.3_2 ← angular:angular 1.4.8 ← angular-templates 1.0.9

Conflict: Constraint babel-compiler@6.8.0 is not satisfied by babel-compiler 7.10.5.
Constraints on package “babel-compiler”:

  • babel-compiler@=7.10.5 ← top level
  • babel-compiler@6.8.0 ← urigo:static-html-compiler 0.1.8 ← angular-templates 1.0.9

Are you sure you are on release-2.16.2 branch? So you did git checkout release-2.16.2?

From the error it may be mean you are in a state of the repo with other dependencies expectations.

Also, what was your actual official version of your app? 2.16? Or an early one?

By a chance, do you have your own packages folder of forked and custom package version using METEOR_PACKAGE_DIRS? May you be missing some env you normally pass on your meteor run command?

@nachocodoner …it looks like the scripts/generate-dev-bundle.sh is erroring out with 2 errors - first it is not able download node version 14.21.4 and if I downgrade it to 14.21.3 it complains ./configure is missing.

Just wanted to check if there is a prerequisite or do we need to do some steps.
the readme says
git clone --recursive GitHub - meteor/meteor: Meteor, the JavaScript App Platform ( I have tried that as well)

However I am able to do ./meteor run from the cloned repo for branch ‘release-2.16.2’ but bundle creation is always failing

What Node version is that? That’s really ancient. Which branch of the Meteor project are you on? Are you sure you’ve fetched the latest from release-2.16.2? Could you share with me the full errored logs?

Sorry my mistake. it should read 14.21.4 …

Which OS do you use?

The OS I use is Ubuntu 24.04