Родной SDK Brightcove для Android дает NoClassDefFoundError

#android #brightcove

Вопрос:

Я получаю сбой своего приложения для Android с помощью родного SDK Brightcove для Android. Журналы Android Studio показывают-

 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/exoplayer2/drm/DefaultDrmSessionEventListener; 
 

Класс Деятельности-

 public class SetActivity extends BrightcovePlayer {

@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_set);
    BrightcoveExoPlayerVideoView brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
    super.onCreate(savedInstanceState);
    
    // Define a video from a remote server
    Video video = Video.createVideo("https://learning-services-media.brightcove.com/videos/hls/greatblueheron/greatblueheron.m3u8", DeliveryType.HLS);

    // Load a remote poster image
    try {
        java.net.URI myposterImage = new java.net.URI("https://solutions.brightcove.com/bcls/assets/images/Great-Blue-Heron.png");
        video.getProperties().put(Video.Fields.STILL_IMAGE_URI, myposterImage);
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    // Add video to the view
    brightcoveVideoView.add(video);
    // Start video playback
    brightcoveVideoView.start();


}
 

}

XML

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".general_activities.SetActivity">


    <com.brightcove.player.view.BrightcoveExoPlayerVideoView
        android:id="@ id/brightcove_video_view"
        android:layout_width="match_parent"
        android:layout_height="280dp"
        />


</RelativeLayout>
 

Ответ №1:

Версия ExoPlayer в вашем скомпилированном коде несовместима с версией ExoPlayer , используемой в пакете SDK Brightcove.

Я вспоминаю здесь из смутной памяти, но я думаю, что Google изменил путь к DefaultDrmSessionEventListener классу в версиях ExoPlayer 2.14 .

Пакет SDK Brightcove скомпилирован на основе более старой версии ExoPlayer , и вам необходимо согласовать свою ExoPlayer версию зависимостей с версией зависимостей Brightcove SDK ExoPlayer .