dotnet / dotnet/android-libraries
Wrong return type: androidx/media3/common/SimpleBasePlayer$State$Builder.Build()
- Dominant language
- C#
- Stars
- 317
- Forks
- 73
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 17
Description
### Android framework version
net8.0-android
### Affected platform version
.NET 8.0.403 / Xamarin.AndroidX.Media3.Common 1.4.1
### Description
The method androidx/media3/common/SimpleBasePlayer$State$Builder.Build() currently returns Java.Lang.Object instead of androidx/media3/common/SimpleBasePlayer$State.
This leads to a NoSuchMethodException at runtime.
See Android docs: https://developer.android.com/reference/androidx/media3/common/SimpleBasePlayer.State.Builder#build()
### Steps to Reproduce
Just invoke the method androidx/media3/common/SimpleBasePlayer$State$Builder.Build()
### Did you find any workaround?
yes:
```
private unsafe State? Build(SimpleBasePlayer.State.Builder builder)
{
var objRef = builder.JniPeerMembers.InstanceMethods.InvokeAbstractObjectMethod("build.()Landroidx/media3/common/SimpleBasePlayer$State;", builder, null);
return GetObject(objRef.Handle, JniHandleOwnership.TransferLocalRef);
}
```
### Relevant log output
```shell
[mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: Java.Lang.NoSuchMethodError: no non-static method "Landroidx/media3/common/SimpleBasePlayer$State$Builder;.build()Ljava/lang/Object;"
[mono-rt] at Java.Interop.JniEnvironment.InstanceMethods.GetMethodID(JniObjectReference type, String name, String signature) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/obj/Release/net7.0/JniEnvironment.g.cs:line 19947
[mono-rt] at Java.Interop.JniType.GetInstanceMethod(String name, String signature) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniType.cs:line 250
[mono-rt] at Java.Interop.JniPeerMembers.JniInstanceMethods.GetMethodInfo(String method, String signature) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods.cs:line 126
[mono-rt] at Java.Interop.JniPeerMembers.JniInstanceMethods.GetMethodInfo(String encodedMember) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods.cs:line 93
[mono-rt] at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeAbstractObjectMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:line 843
[mono-rt] at AndroidX.Media3.Common.SimpleBasePlayer.State.Builder.Build() in D:\a\_work\1\s\generated\androidx.media3.media3-common\obj\Release\net8.0-android\generated\src\AndroidX.Media3.Common.SimpleBasePlayer.cs:line 1892
[mono-rt] at xxx.Maui.Blazor.MainActivity.CustomPlayer..ctor(Looper applicationLooper) in D:\xxx\xxx\xxx.Maui.Blazor\Platforms\Android\MainActivity.cs:line 36
[mono-rt] at xxx.Maui.Blazor.MainActivity.OnStart() in D:\xxx\xxxApp\xxx.Maui.Blazor\Platforms\Android\MainActivity.cs:line 21
[mono-rt] at Android.App.Activity.n_OnStart(IntPtr jnienv, IntPtr native__this) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net8.0/android-34/mcw/Android.App.Activity.cs:line 5183
[mono-rt] at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:line 22
[mono-rt] --- End of managed Java.Lang.NoSuchMethodError stack trace ---
```
Contributor guide
Assessment
This issue has not been assessed yet.