dotnet / dotnet/android-libraries

Wrong return type: androidx/media3/common/SimpleBasePlayer$State$Builder.Build()

Open
#1,031 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.