我为Triton Digital Mobile SDK创建了一个绑定库,并将其集成在我的Xamarin.Android项目中。
我已经将此代码添加到我的项目中,以测试绑定库
using Com.Tritondigital.Player;
namespace MyProject.Droid.Services
{
public class AudioSource : Service, AudioManager.IOnAudioFocusChangeListener
{
.
.
.
public void Play()
{
Bundle settings = new Bundle();
settings.PutString(TritonPlayer.SettingsStreamUrl, "http://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3");
// Create the player.
TritonPlayer player = new TritonPlayer(this, settings);
player.Play();
}
.
.
.
}
}
但在运行时,它会抛出致命异常
[TdStreamPlayer] SETTINGS_STREAM_MIME_TYPE not set. Deduced from URL: audio/mpeg
[TdStreamPlayer] SETTINGS_TRANSPORT not set. Deduced from URL: sc
[TdTritonPlayer] State changed: Stopped -> Connecting
[TdExoPlayerBkg] ExoPlayer URL: http://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3
[TdExoPlayerBkg] ExoPlayer buffer start: 2500 rebuffer: 8000 timeout: 15000
[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main
[AndroidRuntime] Process: com.company.myapp, PID: 8630
[AndroidRuntime] java.lang.NoSuchMethodError: No virtual method build()Lcom/google/android/exoplayer2/DefaultLoadControl; in class Lcom/google/android/exoplayer2/DefaultLoadControl$Builder; or its super classes (declaration of 'com.google.android.exoplayer2.DefaultLoadControl$Builder' appears in /data/app/com.company.myapp-bJibtmPeizHK0sfcwRqrpA==/base.apk)
[AndroidRuntime] at com.tritondigital.player.TdExoPlayer$PlayerHandler.b(SourceFile:97)
[AndroidRuntime] at com.tritondigital.player.TdExoPlayer$PlayerHandler.handleMessage(SourceFile:66)
[AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:106)
[AndroidRuntime] at android.os.Looper.loop(Looper.java:193)
[AndroidRuntime] at android.app.ActivityThread.main(ActivityThread.java:6669)
[AndroidRuntime] at java.lang.reflect.Method.invoke(Native Method)
[AndroidRuntime] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[AndroidRuntime] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Java.Lang.IncompatibleClassChangeError: No virtual method build()Lcom/google/android/exoplayer2/DefaultLoadControl; in class Lcom/google/android/exoplayer2/DefaultLoadControl$Builder; or its super classes (declaration of 'com.google.android.exoplayer2.DefaultLoadControl$Builder' appears in /data/app/com.company.myapp-bJibtmPeizHK0sfcwRqrpA==/base.apk)
[MonoDroid] --- End of managed Java.Lang.IncompatibleClassChangeError stack trace ---
[MonoDroid] java.lang.NoSuchMethodError: No virtual method build()Lcom/google/android/exoplayer2/DefaultLoadControl; in class Lcom/google/android/exoplayer2/DefaultLoadControl$Builder; or its super classes (declaration of 'com.google.android.exoplayer2.DefaultLoadControl$Builder' appears in /data/app/com.company.myapp-bJibtmPeizHK0sfcwRqrpA==/base.apk)
[MonoDroid] at com.tritondigital.player.TdExoPlayer$PlayerHandler.b(SourceFile:97)
[MonoDroid] at com.tritondigital.player.TdExoPlayer$PlayerHandler.handleMessage(SourceFile:66)
[MonoDroid] at android.os.Handler.dispatchMessage(Handler.java:106)
[MonoDroid] at android.os.Looper.loop(Looper.java:193)
[MonoDroid] at android.app.ActivityThread.main(ActivityThread.java:6669)
[MonoDroid] at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[MonoDroid] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
你知道如何解决这个问题吗?
尝试使用文档中提到的embeddedjar构建操作在绑定项目中添加外部层的jar