当前位置: 首页 > 知识库问答 >
问题:

Xamarin绑定Jar给出错误:不实现继承的抽象成员Asynctask.doinbackground(params object[])

聂风史
2023-03-14

obj\debug\generated\src\com.acrcloud.rec.sdk.utils.acrcloudgetipaddressasynctask.cs(23,23):错误CS0534:'acrcloudgetipaddressasynctask'未实现继承的抽象成员'Asynctask.doinbackground(params object[])'(CS0534)

使用反编译器,我检查了AcrCloudGetIpAddressAsyncTask的内容,发现了以下内容:

package com.acrcloud.rec.sdk.utils;

import android.os.AsyncTask;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class ACRCloudGetIPAddressAsyncTask
extends AsyncTask<String, Integer, String>
{
    private static final String TAG = "ACRCloudAsynGetIPAddressTask";

    protected String doInBackground(String... params)
    {
        String ip = "";
        try
        {
            InetAddress x = InetAddress.getByName(params[0]);

            ip = x.getHostAddress();
        }
        catch (UnknownHostException e)
        {
            e.printStackTrace();
            ip = "";
        }
        catch (Exception e2)
        {
            ip = "";
        }
       return ip;
  }

  protected void onPostExecute(String ip)
  {
     super.onPreExecute();
     ACRCloudLogger.d("ACRCloudAsynGetIPAddressTask", ">>>>>>>>>>>>>>>  " + ip);
     com.acrcloud.rec.sdk.recognizer.ACRCloudRecognizerRemoteImpl.serverIP = ip;
  }
}

为什么我甚至需要实现doinbackground(params object[])?生成的C#代码实现了保护虚拟不安全字符串DoInBackground(params string[]@params),以匹配Java代码中的内容...我对Java了解不多,所以可能遗漏了什么...知道如何修复这个问题吗?

共有1个答案

羊舌昆杰
2023-03-14

您可以查看这篇伟大的文章:接近Xamarin.Android绑定案例,通过查看添加类型部分,当我们想要添加类、更改构造函数或切换泛型类型时,它会使用

对于库,可以打开transforms文件夹下的metadata.xml,然后添加以下代码:

<add-node path="/api/package[@name='com.acrcloud.rec.sdk.utils']">
  <class abstract="false" deprecated="not deprecated" final="false" name="ACRCloudLocalRecognizerInitAsyncTask" static="true" visibility="public" extends="java.lang.Object">
  </class>

  <class abstract="false" deprecated="not deprecated" final="false" name="ACRCloudGetIPAddressAsyncTask" static="true" visibility="public" extends="java.lang.Object">
  </class>
</add-node>

然后可以成功编译它,但我没有测试将这个库引用到Xamarin.Android项目,您可能需要进一步研究如何使用这个库。不管怎样,那篇帖子帮助很大。

 类似资料:
  • 我正在尝试Android绑定库,我遇到了下面的错误- “ReaderCollectionImpl”不实现继承的抽象成员“AbstractList.get(int)” 下面的函数是在我的类中生成的 在用C#转换时,它变成了- 我的猜测是没有泛型,这可能是这里的问题?

  • 我正试图绑定完整的Mapbox导航UI SDK 0.42--由于它是一个多JAR/AAR项目,因此存在多个问题,如下所示:https://github.com/jacquesokes/mapbox-navigationapp-xamarin 我已经经历了大部分的错误,但在最后,当我想把最后的项目实现到一个Xamarin.android项目中时,我在android中发现了4个接口不存在的错误。 因此

  • 我试图用Xamarin创建一个Android Java绑定库。我有以下错误: 错误CS0535:'eu.myPackage.MyClass'未实现接口成员'eu.myPackage.iProgressableTask.doProgress(params java.lang.Object[])'(CS0535) 这是java代码: 拜托,你能帮忙解决这个吗?

  • 我试图通过visual Studio中的android绑定库将clover.aar文件绑定到xamarin。我把它归结为两个错误: “Decimal”不实现接口成员“icomparable.comapreto(对象)”

  • 怎么啦? 谢谢

  • 问题是: 我有一个叫做Schema的基类,它是抽象的,它是一个未生成的类。我有两个从Schema继承生成的JAXB类:FixedWidthSchema和DelimitedSchema。 我使用外部绑定(xjb)文件来指定XSD和Java类之间的映射。 在基类模式中,我定义了几个方法: 公共架构静态创建(Model m),它从提供的模型创建架构。 公共抽象Writer marshal(),它将当前架