#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
.