Skip to content

Java bindings incorrectly assigning method as obsolete #1142

@Archit-Pikle

Description

@Archit-Pikle

Android application type

.NET Android (net7.0-android, etc.)

Affected platform version

VS 17.8.0 Preview 1.0

Description

Java bindings are tagging a method as Obsolete even though the api.xml sets it as not deprecated

Our Java bindings are failing with the following error -
Error CS0809 Obsolete member 'MAMIntentService.OnBind(Intent?)' overrides non-obsolete member 'Service.OnBind(Intent?)'

I see the api.xml is correctly tagging the method as not deprecated -

<method abstract="false" deprecated="not deprecated" final="true" name="onBind" jni-signature="(Landroid/content/Intent;)Landroid/os/IBinder;" bridge="false" native="false" return="android.os.IBinder" jni-return="Landroid/os/IBinder;" static="false" synchronized="false" synthetic="false" visibility="public">
        <parameter name="intent" type="android.content.Intent" jni-type="Landroid/content/Intent;" />
      </method>

The generated MAMIntentService.cs file is tagging the method as obsolete -

[global::System.Obsolete (@"deprecated")]
[Register ("onBind", "(Landroid/content/Intent;)Landroid/os/IBinder;", "")]
public override sealed unsafe global::Android.OS.IBinder? OnBind (global::Android.Content.Intent? intent)

This is only happening on .NET 8 and started occurring with the latest release.

Steps to Reproduce

N/A

Did you find any workaround?

No response

Relevant log output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugComponent does not function as intendedgeneratorIssues binding a Java library (generator, class-parse, etc.)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions