Key takeaways
- JFrog announced on February 3, 2021 that it was shutting down Bintray, JCenter, GoCenter and ChartCenter. Bintray stopped on May 1, 2021, and JCenter has redirected to Maven Central since August 15, 2024.
- Gradle deprecated jcenter() in Gradle 7.0 and removed it in Gradle 9.0. On Gradle 9, any build file that still calls jcenter() fails before it downloads anything.
- On October 18, 2026, bintray.com did not load, dl.bintray.com returned 404, and jcenter.bintray.com redirected to repo1.maven.org. A library that was only ever published on JCenter now returns 404.
- The usual fix: replace jcenter() with mavenCentral() and google(), in your own build files and in any old plugin that still declares it.
- If a dependency was never moved to Maven Central, upgrade to a maintained version, build it from source through JitPack, or keep a copy of the file in your project.
Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.
Bintray is gone and JCenter is now only a redirect to Maven Central, so an Android or Flutter project that still points at them can fail to build or fail to find some of its libraries. Often the fix is short: replace jcenter() with mavenCentral() and google(). The harder cases are old plugins that still declare JCenter and libraries that were never published anywhere else. Both are covered below.
If you landed here from an old Bintray link or a README that says to add JCenter, this is what changed and how to fix the build. The dates come from JFrog, Gradle and Android Developers, as listed in the sources. I tested the Bintray and JCenter addresses below myself on October 18, 2026.
Disclosure: App369 is my studio. I fix and maintain Flutter and Android apps for a living, and the last section mentions what I sell. No company named here paid for a mention.
What happened to Bintray and JCenter, and when
| Date | What happened | Source |
|---|---|---|
| February 3, 2021 | JFrog announces the end of Bintray, JCenter, GoCenter and ChartCenter | JFrog |
| February 22, 2021 | Gradle tells users to replace JCenter with Maven Central and says Gradle 7.0 will deprecate jcenter() | Gradle blog |
| March 31, 2021 | JCenter stops accepting new submissions | JFrog |
| May 1, 2021 | Bintray shuts down | JFrog |
| 2021 to 2024 | JCenter stays up as a read-only repository | Gradle blog |
| August 15, 2024 | JCenter starts redirecting every request to Maven Central | JFrog |
| Gradle 9.0 | Gradle removes the jcenter() method | Gradle docs |
Android's JCenter migration page still says JCenter allows downloads of existing artifacts indefinitely. JFrog's 2024 post and Gradle's 9.0 upgrade guide both describe the redirect to Maven Central, and that redirect is what I saw when I tested it.
What the old addresses do today
Checked on October 18, 2026:
- bintray.com did not load: the connection timed out.
- dl.bintray.com, where many READMEs linked downloads and custom repositories, returned 404.
- jcenter.bintray.com returned a 301 redirect to repo1.maven.org, Maven Central.
- A library that was only ever published on JCenter,
org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.12, followed the redirect to Maven Central and returned 404.
So JCenter now works only for files that also exist on Maven Central. Anything else fails, sometimes with a confusing "could not find" error for a version you know used to exist.
How to fix the build
Work through these in order. In my experience, the first two fix many projects.
- Replace
jcenter()in your own build files. In an Android project, look insettings.gradle(orsettings.gradle.kts) underpluginManagementanddependencyResolutionManagement, and in the top-levelbuild.gradleunderbuildscriptandallprojects. In a Flutter app the same files are underandroid/. Replacejcenter()withmavenCentral(), and make suregoogle()is there too. KeepgradlePluginPortal()inpluginManagementif it is already there.repositories { google() mavenCentral() } - Sync, then read the first error. If it names a library that can't be found, go to step 4. If it mentions
jcenter()and points at a file you don't own, go to step 3. - Fix plugins and libraries that still declare JCenter. On Gradle 9 the build stops at any
jcenter()call in a build file Gradle runs, and that includes Flutter plugins, which are built as part of your app. So in a Flutter app the culprit is usually an old plugin: check the plugin's changelog, then raise its version inpubspec.yamland runflutter pub upgrade. If the plugin is unmaintained, look for a maintained fork or a replacement plugin. Editing files in the pub cache is fragile: the change doesn't reach CI or other machines, and it is lost when the cache is cleared or repaired. A fork referenced fromdependency_overridesinpubspec.yamlis the safer way to patch a plugin. If you can't upgrade the plugin yet, staying on Gradle 8 buys time, but it doesn't fix the underlying problem. - Find a new home for JCenter-only libraries. Search Maven Central for the library. Many moved there under the same group ID, sometimes with a newer version only. If the source is on GitHub, JitPack can build it from a release tag: add
maven { url 'https://jitpack.io' }and usecom.github.<user>:<repo>:<tag>coordinates. JitPack builds the code itself, so check that the tag is the version you expect. As a last resort, put the JAR or AAR in alibs/folder and depend on it as a local file. That works in the app module; in a plugin or library module, use a file-based Maven repository instead. A local file also drops the library's own dependencies, so add those yourself, and note the library as something to replace. - Check for other dead repositories. Remove any
maven { url "https://dl.bintray.com/..." }lines. Each one is a dead address that slows down or breaks resolution. - Build from a clean state. Run the build with an empty Gradle cache (a fresh
GRADLE_USER_HOMEor a clean CI runner, plusflutter cleanin a Flutter app) before you call it fixed. A cache on your own machine can hide a library that no longer downloads anywhere.
When it's more than a one-line change
| What you see | What it usually means | Usual fix |
|---|---|---|
The build fails on jcenter() after a Gradle upgrade | A build file, yours or a plugin's, still calls the removed method | Replace it in your files, and upgrade the plugin |
| "Could not find" for an old version of a library | That version only existed on JCenter | Use a version that is on Maven Central, or JitPack |
| A README says to add a dl.bintray.com repository | The project published only through Bintray | Check Maven Central and GitHub releases for the same project |
| The project hasn't been built in years | JCenter is one of several outdated pieces | Upgrade Gradle, Android Gradle Plugin and Kotlin step by step |
A project that has sat untouched since 2020 or 2021 usually needs more than the repository change: newer Gradle and Android Gradle Plugin versions, a newer Kotlin, and a recent target API level, because Google Play requires updates to meet its current target API requirement (check the deadline in Play Console). Do those one at a time and build after each, so you know which change broke what.
For the iOS side of the same problem, see Flutter iOS build failed after an upgrade.
Need a hand?
If the build still fails after these steps, or the project is old enough that JCenter is only the first problem, the App Fix Ticket is two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days. If you're not sure it fits, send me a short description of the error and the project's age, and I'll tell you where I'd start.
Frequently asked questions
- Is JCenter still available?
- Not as its own repository. JFrog stopped new submissions on March 31, 2021, and on August 15, 2024 it started redirecting all JCenter requests to Maven Central. Anything that exists on Maven Central still downloads, and anything that only existed on JCenter now returns 404.
- What replaced JCenter?
- Maven Central, through mavenCentral() in Gradle. Android Gradle Plugin and AndroidX libraries come from Google's Maven repository, through google(). Many Android and Flutter projects need nothing else.
- Why does my build fail on jcenter() after upgrading Gradle?
- Gradle removed the jcenter() method in Gradle 9.0, after deprecating it in Gradle 7.0. Any build file that still calls it, including one inside an old plugin or library, stops the build. Replace it with mavenCentral(), or upgrade the plugin that declares it.
- What happened to dl.bintray.com links?
- Bintray shut down on May 1, 2021. dl.bintray.com returned 404 when I tested it on October 18, 2026, and bintray.com itself did not load. If a README tells you to download a file or add a repository from Bintray, look for the same project on Maven Central or GitHub releases.
- How do I fix a Flutter Android build that still uses jcenter()?
- Check android/build.gradle and android/settings.gradle in your app first, and replace jcenter() with mavenCentral(). If the error points into a plugin, upgrade that plugin with flutter pub upgrade or a newer version in pubspec.yaml. Plugins that are no longer maintained may need a fork or a replacement.
- What if a library I need was only on JCenter?
- Search Maven Central for a newer version under the same or a new group ID. If the source is on GitHub, JitPack can build it from a tag. As a last resort, keep the JAR or AAR file in your project and depend on it locally, and plan to replace the library.
Sources
- JFrog, "Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter" (February 3, 2021)
- JFrog, "JCenter Sunset on August 15th, 2024" (July 2, 2024)
- Gradle blog, "JCenter shutdown impact on Gradle builds" (February 22, 2021)
- Gradle, upgrading to Gradle 9.0 (removal of jcenter())
- Android Developers, JCenter migration
- Maven Central search
- JitPack
Fixed-price services
Want this done at a fixed price?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
Related Resources
Related guides
Flutter iOS Build Failed After an Upgrade? Fix CocoaPods and Xcode Errors (2026)
Flutter iOS build failing after upgrading Flutter, FlutterFire or Xcode? How to read the real error, then fix CocoaPods, deployment target and plugin version mismatches.
Read moreHockeyApp, Fabric and App Center Are Gone: Beta Testing and Crash Reporting in 2026
HockeyApp, Fabric, BuddyBuild, Appsee, BugSense, Crittercism and Visual Studio App Center are gone or going. A dated record of what shut down, plus the 2026 options for mobile beta testing (TestFlight, Google Play, Firebase App Distribution) and crash reporting (Crashlytics, Sentry, Bugsnag), checked October 17, 2026.
Read moreParse, Kinvey and Realm Sync Are Gone: Where to Run Your App Backend in 2026
Parse, StackMob, Azure Mobile Services, Kinvey, Telerik Platform, Appcelerator, Realm Sync and App Center are gone. A dated record of what shut down, plus the 2026 options for your app backend (Firebase, Supabase, Parse Server, Appwrite, PocketBase) with prices checked October 17, 2026.
Read more