Dar*_*ius 7 java xamarin.android android-asynctask xamarin
我想在我的Xamarin.Android项目中使用这个.jar文件:
https://drive.google.com/file/d/0B8xKHTqtwfKtdzVtdDQ5NEVIWlU/view?usp=sharing
在我创建绑定项目并尝试构建之后,我收到此错误:
obj\Debug\generated\src\Com.Acrcloud.Rec.Sdk.Utils.ACRCloudGetIPAddressAsyncTask.cs(23,23): Error CS0534: 'ACRCloudGetIPAddressAsyncTask' does not implement inherited abstract member '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;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我甚至需要实施DoInBackground(params Object[])?生成的C#代码实现protected virtual unsafe string DoInBackground (params string[] @params)与Java代码中的内容相匹配...我对Java知之甚少,所以我可能会遗漏一些东西......任何想法如何解决这个问题?
Gra*_*eng 10
您可以查看这篇文章:接近Xamarin.Android Bindings案例,通过检查添加类型部分,它会<add-node>在我们想要添加类,更改构造函数或切换泛型类型时使用.
对于您的lib,您可以Metadata.xml在该Transforms文件夹下打开,然后添加以下代码:
<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>
Run Code Online (Sandbox Code Playgroud)
然后它可以成功编译,但我没有测试将此lib引用到Xamarin.Android项目,您可能需要进一步研究使用此lib.无论如何,这篇文章有很多帮助.
您还可以在SO上检查类似的情况:未生成Java绑定抽象类.
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |