未找到符号 ExoPlayerFactory

Neg*_*ity 6 android android-gradle-plugin exoplayer2.x

我快疯了,试图弄清楚这一点。这根本没有意义。我已经在我的build.gradle文件中添加了所需的实现并将其同步得很好,但是当我尝试使用 ExoPlayer 时它没有找到。我什至尝试使用自动完成手动输入导入行,自动完成中唯一可用的东西com.google.android.exoplayer2BuildconfigR.我不知道发生了什么。我有一个使用它的项目,一切都很棒。好久没打开了,想重新学习,所以打开了,现在不管怎么都找不到ExoPlayer的符号。

这是我的build.gradle文件...

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "test.notreal.justatext"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:support-v13:28.0.0' //THIS
    implementation 'com.android.support:support-media-compat:28.0.0' //AND THIS
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.firebase:firebase-core:16.0.9'
    implementation 'com.google.firebase:firebase-auth:17.0.0'
    implementation 'com.google.firebase:firebase-database:17.0.0'
    implementation 'com.google.firebase:firebase-storage:17.0.0'
    implementation 'de.hdodenhof:circleimageview:1.3.0'
    implementation 'com.soundcloud.android:android-crop:1.0.1@aar'
    implementation 'com.jakewharton:butterknife:9.0.0-rc2'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
    implementation 'com.github.jd-alexander:LikeButton:0.2.3'
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    implementation 'fr.tvbarthel.blurdialogfragment:lib:2.2.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.nineoldandroids:library:2.4.0'
    implementation 'com.scottyab:aescrypt:0.0.1'
    implementation 'com.daimajia.slider:library:1.1.5@aar'
    implementation 'com.google.firebase:firebase-messaging:18.0.0'
    implementation 'com.google.android.exoplayer:exoplayer:r2.5.0' //RIGHT HERE
    implementation 'com.bignerdranch.android:recyclerview-multiselect:0.2'
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.5.+'
    testImplementation 'junit:junit:4.12'
    implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
    implementation 'jp.wasabeef:glide-transformations:3.0.1'

}





apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

在里面你可以看到...

implementation 'com.google.android.exoplayer:exoplayer:r2.5.0'
Run Code Online (Sandbox Code Playgroud)

并且该应用程序将正确进行 gradle 同步,但在我的应用程序中,以下所有内容都是红色的...

import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.ExtractorsFactory;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelector;
import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
Run Code Online (Sandbox Code Playgroud)

exoplayer2 之后的一切。是红色的。它找不到任何符号。为了向自己保证我不会发疯,我开始了一个新项目,在我干净的 build.gradle 文件中添加了 exoplayer 的实现,打开了主要活动并输入

SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(this);
Run Code Online (Sandbox Code Playgroud)

它找不到符号。无法导入它,在我尝试更新到 2.10.1 之类的较新版本后,它仍然只显示所有内容的BuildConfigR符号com.google.android.exoplayer2.,这会导致构建失败,在一个全新的干净应用程序上合并 android 清单失败。所以我无法更新版本,但突然无论我做什么Android Studio都找不到ExoPlayer符号。

Piy*_*mar 7

编辑 2022 年 6 月 10 日

从 Exoplayer 2.16.0 版本开始。

SimpleExoPlayer已弃用。所有功能均已移至ExoPlayer替代位置。ExoPlayer.Builder可以用来代替SimpleExoPlayer.Builder.

较旧的解决方案

更新后仍然没有在包中找到 ExoPlayerFactory 类,它已从版本 2.14.0 中删除

你应该使用SimpleExoPlayer.Builder

检查这里: https: //github.com/google/ExoPlayer/releases


Nov*_*cas 6

您使用的版本相当旧,可能与 Gradle 版本冲突。您可以尝试降级Gradle版本或将Exoplayer升级到较新的版本,建议这样做。