为了账号安全,请及时绑定邮箱和手机立即绑定

X 类具有未知的基类型 Y' 在 xamarin 中绑定 java 代码时发出警告

X 类具有未知的基类型 Y' 在 xamarin 中绑定 java 代码时发出警告

BIG阳 2023-02-23 10:40:36
我目前正在尝试获取用 java(.jar 文件)编写的 SDK,以便与 Xamarin.Android 一起使用。因此,我尝试按照官方教程 ( https://learn.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-a-jar )绑定 .jar 文件. 我如何摆脱警告“警告 BG8102:X 类具有未知的基类型 Y”。没有源代码?不幸的是,我没有取得太大的成功,因为只有一小部分类可以正确绑定。我查看了控制台,看到了很多类似的警告“warning BG8102: Class Wangpos.Sdk4.Libbasebinder.IDCard has unknown base type wangpos.sdk4.libbasebinder.a.”。所有其他警告大多相同 - 只有类不同(基本类型保持不变)。我已经尝试反汇编 .jar SDK 文件,但是基类“a”似乎并没有异常。除了 java 本机参考之外,没有其他参考。分解类的一小段。import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.IBinder;import android.os.IBinder.DeathRecipient;import android.os.RemoteException;import android.util.Log;import java.util.concurrent.CountDownLatch;import wangpos.sdk4.base.IBinderPool;public class a{  private static final String a = "BaseBinder";  public static final int BINDER_NONE = -1;  private Context c;  private static IBinderPool d = null;  private static a e;  private CountDownLatch f;  protected boolean b = false;  private a(Context context) {    c = context;    d = null;    c();  }  public a() {}  static a a(Context context)  {    if (d == null) {      synchronized (a.class) {        if (d == null) {          e = new a(context);        }      }    }    return e;  }  private ServiceConnection g = new BaseBinder.1(this);  ...}
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

通常,我们会在各自的.jar/.aar库中看到混淆类型的特征,我们必须取消混淆它们以便绑定生成器生成相应的 C# 类型。

你可以试试这个,在你的库Transforms - Metadata.xml添加:

<attr path="/api/package[@name='{package_name}']/class[@name='{name}']" name="obfuscated">false</attr>


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号