ExoPlayer: Repositories down / Failed to resolve dependency

Issue description

As of a few hours ago, my builds are failing to find exoplayer 2.8+ (I also tried 2.9+, no difference) in Google repository. Never seen that before, always worked fine.

Reproduction steps

It’s an Android gradle project.

Relevant lines:

allprojects {
    repositories {
        google()
        jcenter()
    }
}

ext {
    exoplayer_version = '2.8+'
}

implementation 'com.google.android.exoplayer:exoplayer-core:' + exoplayer_version,
implementation 'com.google.android.exoplayer:exoplayer-dash:' + exoplayer_version,

Output:

> Could not find any matches for com.google.android.exoplayer:exoplayer-core:2.8+ as no versions of com.google.android.exoplayer:exoplayer-core are available.
  Required by:
      project :
> Could not find any matches for com.google.android.exoplayer:exoplayer-dash:2.8+ as no versions of com.google.android.exoplayer:exoplayer-dash are available.
  Required by:
      project :

Link to test content

I am able to reproduce with demos/main if I edit its build.gradle like this:

ext {
    exoplayer_version = '2.9+'
}

dependencies {
    implementation 'com.android.support:support-annotations:' + supportLibraryVersion
    //implementation project(modulePrefix + 'library-core')
    //implementation project(modulePrefix + 'library-dash')

    // Do not reference projects, try to pull in from (Google) repository
    implementation ('com.google.android.exoplayer:exoplayer-core:' + exoplayer_version)
    implementation ('com.google.android.exoplayer:exoplayer-dash:' + exoplayer_version)

    implementation project(modulePrefix + 'library-hls')
    implementation project(modulePrefix + 'library-smoothstreaming')
    implementation project(modulePrefix + 'library-ui')
    withExtensionsImplementation project(path: modulePrefix + 'extension-ffmpeg')
    withExtensionsImplementation project(path: modulePrefix + 'extension-flac')
    withExtensionsImplementation project(path: modulePrefix + 'extension-ima')
    withExtensionsImplementation project(path: modulePrefix + 'extension-opus')
    withExtensionsImplementation project(path: modulePrefix + 'extension-vp9')
    withExtensionsImplementation project(path: modulePrefix + 'extension-rtmp')
}

Output:

> Could not find any matches for com.google.android.exoplayer:exoplayer-core:2.9+ as no versions of com.google.android.exoplayer:exoplayer-core are available.
  Searched in the following locations:
...
    - https://dl.google.com/dl/android/maven2/com/google/android/exoplayer/exoplayer-core/maven-metadata.xml
    - https://dl.google.com/dl/android/maven2/com/google/android/exoplayer/exoplayer-core/
    - https://jcenter.bintray.com/com/google/android/exoplayer/exoplayer-core/maven-metadata.xml
    - https://jcenter.bintray.com/com/google/android/exoplayer/exoplayer-core/
  Required by:
      project :demo

Editing build.gradle was necessary because normally demos/main brings in exoplayer libraries from the same (local file system) repository / build hierarchy.

Full file with edits available here:

https://gist.github.com/kmansoft/e90624a702574fa9d7ab414dc05170c7

Version of ExoPlayer being used

2.8+ Same with 2.9+

Device(s) and version(s) of Android being used

N/A - build problem, not runtime problem

Maybe this is the reason?

https://dl.google.com/dl/android/maven2/com/google/android/exoplayer/exoplayer-core/maven-metadata.xml

Gives me a “404” - same with exoplayer-dash instead of exoplayer-core.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 19
  • Comments: 46 (16 by maintainers)

Most upvoted comments

Google ExoPlayer namespace on bintray is still active so the following workaround works for me.

repositories {
    google()
    jcenter()
    maven {
        url 'https://google.bintray.com/exoplayer/'
    }
}

Update from Google on the thread above:

Hey everyone,

We understand this is a really painful situation right now for a lot of developers.  Removing packages from jCenter which are not replicated in Google's maven repo was an accident and a product of a miscommunication!  We're working on getting everything back into place. 

Please try and be patient with us and let's try and reserve comments on this thread for updates on the situation.   If you're affected by this issue and want to be heard, please click "Me too!" at the top of the page as a way of 'upvoting' this issue.

- Sam

https://issuetracker.google.com/issues/120759347#comment27

Bintray seem to have stopped mirroring exoplayer-core and exoplayer-dash to JCenter, which is why they don’t appear as folders in the link above. I’m not sure why that happened; I’ve asked them to start mirroring them again.

40 “me too” comments but not a single “thanks” comment in this thread…

Thank you @ojw28 🙂

I add an alternative repo as a temporary solution and it works while we are waiting for the jcenter repo to up again:

buildscript { 
    repositories {
        maven { url 'https://repo.spring.io/libs-release'}
        jcenter()
    }
}
allprojects {
    repositories {
        maven { url 'https://repo.spring.io/libs-release'}
        jcenter()
    }
}

Just make sure the alternative repo is before the jcenter so it is prioritized. Hope it helps.

We have asked Bintray to restore the missing projects. In the meantime, adding:

maven {
    url 'https://google.bintray.com/exoplayer/'
}

to

allprojects {
    repositories {

in the project gradle file should serve as a temporary workaround for most use cases. I’m not sure about the Facebook Audience Network one.

Note: Please refrain from posting non-helpful comments such as “me too” on this thread; it just makes it harder for people to find the actual useful comments. Thanks.

All packages are now restored. I’ve filed #5246 to track hosting ExoPlayer packages on GMaven.

The following packages are available again:

exoplayer-core
exoplayer-dash
exoplayer-hls
exoplayer-ui
extension-cronet
extension-gvr
extension-ima
exoplayer // (probably wont work until exoplayer-smoothstreaming is restored)

We have pending requests to Bintray to re-add the remaining 7 packages, so hopefully they will become available soon.

For those who are interested, there is a basic outline of what happened here. I’m concerned that it happened, but more so that it took such a long period of time to root cause and fix (the latter is still ongoing). Apologies for the significant inconvenience caused. We will be conducting a postmortem to learn how we can can prevent this kind of incident in the future. For ExoPlayer, the most obvious action item is to publish to GMaven (google()). I suspect this may be true for other affected projects as well, but I can only speak for ExoPlayer for now.

Thanks @jmatsu, your workaround has worked for me.

Well that was a waste of two hours.

As noted above, please refrain from posting non-helpful comments on this thread. It only serves to make the thread harder for others to follow. We’ve already stated multiple times we believe the root cause is with Bintray and that we’ve asked them to look at it. We’ve also made them aware that we’re receiving a high volume of complaints.

Added -

maven { url ‘https://google.bintray.com/exoplayer/’ }

but still not working

Added -

maven { url ‘https://google.bintray.com/exoplayer/’ }

but still not working

Finally worked…

add above url to project-level gradle file in following section (allprojects-repositories-)

allprojects { repositories { google() jcenter() maven { url ‘https://google.bintray.com/exoplayer/’ } } }

Added -

maven { url ‘https://google.bintray.com/exoplayer/’ }

but still not working

aaaaawwwww

The link should work now.

https://jcenter.bintray.com/com/google/android/exoplayer/

worked for a while (had -core and -dash but not others like -hsl and so on).

But now is down again.

The requested path was not found.

Maybe they’ve decided to fully rebuild the mirror… Hopefully…

Meanwhile

https://google.bintray.com/exoplayer/

still works.

It’s working for me now.

Added -

maven { url ‘https://google.bintray.com/exoplayer/’ }

but still not working

Yes, not working for me too

You may clone the repo locally and put it in dependencies https://github.com/google/ExoPlayer#locally