我正在使用AAR制作Razorpay 1.6.26的Xamarin Android绑定库(https://repo1.maven.org/maven2/com/razorpay/checkout/1.6.26/checkout-1.6.26.aar)但是由于OnRequestPermissionsResult方法中的一个参数类型而导致其给定错误,该方法被声明为
OnRequestPermissionsResult (int p0, string[] p1, int[] p2)
但应该是
OnRequestPermissionsResult (int p0, string[] p1, Permission[] p2)
我正在尝试使用以下属性代码通过Metadata.xml进行更改
<attr path="/api/package[@name='com.razorpay']/class[@name='CheckoutActivity']/method[@name='OnRequestPermissionsResult' and count(parameter)=3 and parameter[1][@type='int'] and parameter[2][@type='java.lang.String[]'] and parameter[3][@type='int[]']]/parameter[3]" name="type">Android.Content.PM.Permission[]</attr>
但它不起作用,错误与早期的相同
Severity Code Description Project File Line Suppression State
Error CS0115 'CheckoutActivity.OnRequestPermissionsResult(int, string[], int[])': no
suitable method found to override RazorPayBindingNew
知道怎么解决这个问题吗?
我已经测试了绑定,您的Metadata.xml中似乎有问题。您可以尝试以下代码:
<attr path="/api/package[@name='com.razorpay']/class[@name='CheckoutActivity']/method[@name='onRequestPermissionsResult' and count(parameter)=3 and parameter[1][@type='int'] and parameter[2][@type='java.lang.String[]'] and parameter[3][@type='int[]']]/parameter[3]" name="type">Android.Content.PM.Permission[]</attr>
对我的错误表示歉意。name="type"
是对的。name="manageType"
应用于更改返回类型。
并且'OnRequestPermissionsResult'
应该是'onRequestPermissionsResult'
。我已经检查了绑定错误,错误消息显示名称应该是onRequestPermissionsResult
。我已经测试过了,当我把它改为onRequestPermissionsResult
时,错误消息消失了。