google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.7k stars 6.02k forks source link

A warning occurs when applying proguard from version 2.12.0. #8103

Closed junhoi-pk closed 3 years ago

junhoi-pk commented 3 years ago

A warning occurs when applying proguard from version 2.12.0. (2.12.1 is equal)

My dependencies are below.

dependencies {
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
    implementation('com.google.android.material:material:1.2.1')
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
    implementation "com.google.firebase:firebase-analytics:17.6.0"
    implementation('com.google.firebase:firebase-messaging:20.3.0')
    implementation("com.google.firebase:firebase-crashlytics:17.2.2")
    implementation "com.google.firebase:firebase-auth:19.4.0"
    implementation("com.google.android.gms:play-services-safetynet:17.0.0")
    implementation("com.github.tbruyelle:rxpermissions:0.12")
    implementation("com.github.bumptech.glide:glide:4.11.0")
    implementation("jp.wasabeef:glide-transformations:4.3.0")
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    implementation("com.squareup.retrofit2:adapter-rxjava3:2.9.0")
    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
    // The only way is use OkHttp 3.12.x if your minSDK lower 21.
    // Caused by java.lang.IllegalStateException
    // Expected Android API level 21+ but was 19
    implementation("com.squareup.okhttp3:logging-interceptor:3.12.1")
//    implementation("com.squareup.okhttp3:logging-interceptor:4.8.0")
    implementation("io.reactivex.rxjava3:rxjava:3.0.7")
    implementation("io.reactivex.rxjava3:rxandroid:3.0.0")
    implementation("com.jakewharton.rxrelay3:rxrelay:3.0.0")
    implementation("com.trello.rxlifecycle4:rxlifecycle:4.0.0")
    implementation("com.trello.rxlifecycle4:rxlifecycle-android:4.0.0")
    implementation("com.trello.rxlifecycle4:rxlifecycle-components:4.0.0")
    implementation("com.jakewharton.rxbinding4:rxbinding:4.0.0")
    // implementation("com.jakewharton.rxbinding3:rxbinding-recyclerview:3.0.0")
    // implementation 'com.jakewharton.rxbinding3:rxbinding-core:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-appcompat:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-drawerlayout:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-leanback:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-slidingpanelayout:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-swiperefreshlayout:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-viewpager:3.0.0-alpha2'
    // implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0'
    implementation("com.github.chrisbanes:PhotoView:2.3.0")
    implementation("com.theartofdev.edmodo:android-image-cropper:2.8.0")
    implementation("com.android.billingclient:billing-ktx:3.0.1")
    implementation("com.wang.avi:library:2.1.3")
    implementation("com.github.whalemare:sheetmenu:2.0.1")
    implementation("de.hdodenhof:circleimageview:3.1.0")
    //implementation("com.google.android.exoplayer:exoplayer:2.12.1")
    implementation("com.google.android.exoplayer:exoplayer:2.11.8")
    implementation("org.greenrobot:greendao:3.3.0")
    implementation("com.twilio:video-android:5.12.0")
    implementation 'com.github.jeuler:android-segmented:1.0.8'
    implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version")
    implementation("androidx.constraintlayout:constraintlayout:2.0.2")
    annotationProcessor("com.github.bumptech.glide:compiler:4.11.0")
}

During build, the following error occurs.

:secretchat:minifyDebugWithProguard
com.google.common.base.AbstractIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Converter: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.base.Converter: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.base.Converter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Equivalence: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.base.Function: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Joiner: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Joiner$MapJoiner: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.MoreObjects$ToStringHelper: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Preconditions: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Predicate: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Stopwatch: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Supplier: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Throwables: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.Verify: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.base.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.cache.Cache: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.cache.CacheBuilder: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.cache.LocalCache$AbstractCacheSet: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.cache.LocalCache$Segment: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.cache.LocalCache$Segment: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.collect.AbstractBiMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.AbstractBiMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractMapBasedMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractSetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractSortedSetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.AbstractTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ArrayListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ArrayTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.BiMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ClassToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.CollectPreconditions: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.CompactHashMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.CompactHashSet: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ConcurrentHashMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.DenseImmutableTable: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.collect.DiscreteDomain: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.EnumHashBiMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.EnumMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.EvictingQueue: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.FilteredKeyMultimap$AddRejectingList: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.FilteredMultimapValues: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.FluentIterable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingCollection: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingConcurrentMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingDeque: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingList: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingListIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingQueue: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingSetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ForwardingTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.HashBasedTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.HashBiMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.HashBiMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.HashBiMap$EntrySet: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.HashBiMap$Inverse: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.HashMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableBiMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableBiMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableClassToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableClassToInstanceMap: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.collect.ImmutableClassToInstanceMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableCollection: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableCollection$ArrayBasedBuilder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableCollection$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableEnumSet: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableList: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableList$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableListMultimap: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableListMultimap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.ImmutableListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableListMultimap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMap: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.ImmutableMap: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.ImmutableMap: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.ImmutableMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMultimap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMultimap$EntryCollection: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.ImmutableMultimap$Values: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.ImmutableMultiset: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableMultiset$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableRangeMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableRangeSet: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableRangeSet$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSet: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableSet: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.ImmutableSet$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSetMultimap: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableSetMultimap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.ImmutableSetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSetMultimap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSetMultimap$EntrySet: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.ImmutableSortedMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSortedMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSortedMultiset: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableSortedMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSortedMultiset$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSortedSet: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.ImmutableSortedSet: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableSortedSet$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ImmutableTable$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Interner: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Iterables: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Iterators: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.LinkedHashMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.LinkedHashMultimap$ValueSet: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.LinkedListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.LinkedListMultimap$NodeIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.LinkedListMultimap$ValueForKeyIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ListMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMaker: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMakerInternalMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MapMakerInternalMap$Segment: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.collect.MapMakerInternalMap$WeakValueReferenceImpl: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.Maps: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Maps$FilteredEntryBiMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.Maps$KeySet: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.Maps$UnmodifiableBiMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.Maps$Values: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.MinMaxPriorityQueue: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MinMaxPriorityQueue$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MinMaxPriorityQueue$Heap: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.MinMaxPriorityQueue$Heap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multimap: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Multimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multimap: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Multimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multimap: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Multimaps: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multimaps$AsMap: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.Multimaps$Keys: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.Multiset: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Multiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multiset: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Multiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Multisets: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.MutableClassToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ObjectArrays: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ObjectCountHashMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.ObjectCountHashMap$MapEntry: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Ordering: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.PeekingIterator: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Queues: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.RegularImmutableMultiset: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.SetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Sets$SetView: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.SingletonImmutableSet: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.collect.SortedMultisets$ElementSet: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.collect.SortedSetMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.SparseImmutableTable: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.collect.StandardTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.StandardTable$Column: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Synchronized$SynchronizedBiMap: can't find referenced class com.google.j2objc.annotations.RetainedWith
com.google.common.collect.Table: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.Table: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.Table: can't find referenced class com.google.errorprone.annotations.CompatibleWith
com.google.common.collect.TreeBasedTable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.TreeMultimap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.TreeMultiset: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.collect.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.escape.CharEscaperBuilder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.escape.Escapers$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.escape.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.eventbus.Subscriber: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.eventbus.SubscriberRegistry: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.eventbus.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.graph.ConfigurableMutableNetwork: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.ConfigurableMutableValueGraph: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.DirectedMultiNetworkConnections: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.graph.ElementOrder: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.graph.EndpointPair: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.graph.GraphConnections: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.Graphs: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.ImmutableGraph: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.graph.ImmutableNetwork: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.graph.ImmutableValueGraph: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.graph.MapIteratorCache: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.MutableGraph: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.MutableNetwork: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.MutableValueGraph: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.NetworkConnections: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.graph.UndirectedMultiNetworkConnections: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.graph.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.hash.AbstractByteHasher: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.AbstractCompositeHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.AbstractHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.AbstractHasher: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.AbstractNonStreamingHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.AbstractStreamingHasher: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.BloomFilter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.ChecksumHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.Crc32cHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.HashCode: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.HashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.Hasher: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.Hashing$ChecksumType: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.HashingInputStream: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.ImmutableSupplier: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.MacHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.MessageDigestHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.Murmur3_128HashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.Murmur3_32HashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.Murmur3_32HashFunction$Murmur3_32Hasher: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.PrimitiveSink: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.hash.SipHashFunction: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.hash.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.html.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.io.ByteArrayDataInput: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.ByteProcessor: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.ByteSink: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.ByteSource: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.ByteStreams: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.CharSink: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.CharSource: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.CharStreams: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.Closer: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.Files: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.LineBuffer: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.LineProcessor: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.LineReader: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.LittleEndianDataInputStream: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.Resources: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.io.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.math.DoubleMath: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.math.LinearTransformation$RegularLinearTransformation: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.math.LinearTransformation$VerticalLinearTransformation: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.math.MathPreconditions: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.math.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.net.HostAndPort: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.net.InternetDomainName: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.net.MediaType: can't find referenced class com.google.errorprone.annotations.concurrent.LazyInit
com.google.common.net.MediaType: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.primitives.ImmutableDoubleArray: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.primitives.ImmutableDoubleArray$Builder: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.primitives.ImmutableDoubleArray$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.ImmutableIntArray: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.primitives.ImmutableIntArray$Builder: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.primitives.ImmutableIntArray$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.ImmutableLongArray: can't find referenced class com.google.errorprone.annotations.Immutable
com.google.common.primitives.ImmutableLongArray$Builder: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.primitives.ImmutableLongArray$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.UnsignedBytes: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.UnsignedInts: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.UnsignedLong: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.UnsignedLongs: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.primitives.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.reflect.ImmutableTypeToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.ImmutableTypeToInstanceMap$Builder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.Invokable: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.MutableTypeToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.TypeToInstanceMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.TypeToken: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.TypeToken$TypeCollector: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.reflect.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.util.concurrent.AbstractCatchingFuture: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.util.concurrent.AbstractCheckedFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractExecutionThreadService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.j2objc.annotations.ReflectionSupport
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.j2objc.annotations.ReflectionSupport
com.google.common.util.concurrent.AbstractFuture: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.AbstractFuture$TrustedFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractIdleService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractListeningExecutorService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractScheduledService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.AbstractService: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.util.concurrent.AbstractService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AbstractService: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.AbstractTransformFuture: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.util.concurrent.AggregateFuture$RunningState: can't find referenced class com.google.errorprone.annotations.ForOverride
com.google.common.util.concurrent.AggregateFuture$RunningState: can't find referenced class com.google.errorprone.annotations.OverridingMethodsMustInvokeSuper
com.google.common.util.concurrent.AggregateFutureState: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.AggregateFutureState: can't find referenced class com.google.j2objc.annotations.ReflectionSupport
com.google.common.util.concurrent.AggregateFutureState: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.AtomicDouble: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AtomicDoubleArray: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.AtomicLongMap: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.CheckedFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.CycleDetectingLockFactory: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.util.concurrent.ExecutionList: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.FakeTimeLimiter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.FluentFuture$TrustedFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingBlockingQueue: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingCheckedFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingExecutorService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingListenableFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ForwardingListeningExecutorService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.Futures: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.Futures$FutureCombiner: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.FuturesGetChecked: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.InterruptibleTask: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.InterruptibleTask: can't find referenced class com.google.j2objc.annotations.ReflectionSupport
com.google.common.util.concurrent.InterruptibleTask: can't find referenced class com.google.j2objc.annotations.ReflectionSupport$Level
com.google.common.util.concurrent.ListenerCallQueue$PerListenerQueue: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.Monitor: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.Monitor$Guard: can't find referenced class com.google.j2objc.annotations.Weak
com.google.common.util.concurrent.Monitor$Guard: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.MoreExecutors: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.MoreExecutors$DirectExecutorService: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.RateLimiter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.SequentialExecutor: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.Service: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ServiceManager: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ServiceManager$ServiceManagerState: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.ServiceManager$ServiceManagerState$AwaitHealthGuard: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.ServiceManager$ServiceManagerState$StoppedGuard: can't find referenced class com.google.errorprone.annotations.concurrent.GuardedBy
com.google.common.util.concurrent.SettableFuture: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.SimpleTimeLimiter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.ThreadFactoryBuilder: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.util.concurrent.ThreadFactoryBuilder: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.TimeLimiter: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.Uninterruptibles: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.WrappingExecutorService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.WrappingScheduledExecutorService: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
com.google.common.util.concurrent.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
com.google.common.xml.package-info: can't find referenced class com.google.errorprone.annotations.CheckReturnValue
there were 965 unresolved references to classes or interfaces.
Please correct the above warnings first

What should I apply to ProGuard?

icbaker commented 3 years ago

I don't see the warnings you mention when compiling the demo app at 2.12.0:

$ ./gradlew :demo:assembleNoDecoderExtensionsRelease

Without being able to reproduce the problem it's very hard to determine where it's coming from.

Please provide a minimal reproducible example that demonstrates the problem in a way that we can build locally.

This could be an Android Studio project on GitHub, or zipped up and sent to dev.exoplayer@gmail.com using a subject in the format "Issue #1234", where "#1234" should be replaced with your issue number. Please also update this issue to indicate you’ve done this.

junhoi-pk commented 3 years ago

@icbaker

I made a sample If you run the command below, you may encounter a warning

$ git clone https://github.com/junhoi-pk/ExoPlayerBuildError.git
$ cd ExoPlayerBuildError
$ ./gradlew :app:minifyDebugWithProguard

And you can see that there are no errors if you change the version to 2.11.8 and repeat again.

Thx

icbaker commented 3 years ago

Thanks for the project, I can repro with your instructions.

I can also repro in the demo app by adding android.enableR8=false to gradle.properties. This repros at both dev-v2 and 2.12.0. And equally I can fix your project by removing that line and running:

$ ./gradlew :app:minifyDebugWithR8

So the error only seems to occur when using ProGuard instead of R8.

Note that enableR8 is a deprecated option, it prints this warning in my build log:

WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8

I think this is related to some dependencies that Guava pulls in and only uses at compile-time. We deliberately exclude these here: https://github.com/google/ExoPlayer/blob/5b1514e933f1bd7415737af3c2323f47f08f0b64/library/common/build.gradle#L19-L27

I was able to get the demo app building at dev-v2 with android.enableR8=false as follows:

  1. Add explicit dependencies from the demo app to the compile-only dependencies (version numbers taken from Guava's pom.xml):
implementation 'com.google.code.findbugs:jsr305:3.0.2'
implementation 'org.checkerframework:checker-qual:2.5.2'
implementation 'com.google.errorprone:error_prone_annotations:2.2.0'
implementation 'com.google.j2objc:j2objc-annotations:1.1'
  1. Add the following to the common module's proguard-rules.txt (from Guava's suggested ProGuard config):
    -dontwarn javax.lang.model.element.Modifier

I made similar changes to your project, but had to make two additions:

implementation 'org.codehaus.mojo:animal-sniffer-maven-plugin:1.17'
-dontwarn sun.misc.Unsafe

That then produces a different error:

$ ./gradlew :app:minifyDebugWithProguard

> Configure project :app
WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8

> Task :app:mergeDebugJavaResource FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > More than one file was found with OS independent path 'META-INF/DEPENDENCIES'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s
13 actionable tasks: 3 executed, 10 up-to-date

It seems like the easiest fix is to switch your app from ProGuard to R8 - if that's possible.

If you need to keep using ProGuard I suggest you make the changes described above to depend explicitly on dependencies that Guava only uses at compile-time.

icbaker commented 3 years ago

Ah my steps to fix the demo app in the comment above don't work to fix the problem - I had some other changes in the same project that were interfering and I didn't realise.

Let me come back with another update shortly.

icbaker commented 3 years ago

OK, trying again :)

Thanks for the project, I can repro with your instructions.

I can also repro in the demo app by adding android.enableR8=false to gradle.properties. This repros at both dev-v2 and 2.12.0. And equally I can fix your project by removing that line and running:

$ ./gradlew :app:minifyDebugWithR8

So the error only seems to occur when using ProGuard instead of R8.

Note that enableR8 is a deprecated option, it prints this warning in my build log:

WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8

I think this is related to some dependencies that Guava pulls in and only uses at compile-time. We deliberately exclude these here: https://github.com/google/ExoPlayer/blob/5b1514e933f1bd7415737af3c2323f47f08f0b64/library/common/build.gradle#L19-L27

We already -dontwarn for other compile-only dependencies in our ProGuard config, so I'm going to add additional suppressions. That seems to fix the problem for me, both in your app and the demo app.