我对Xamarin完全陌生。我正在使用VS2017,并且为Sunmi V1 POS设备添加了一些AIDL文件。最终,当我收到新订单时,我需要它来打印到设备的热敏打印机上,但是我在基本方面苦苦挣扎。
我已经添加了AIDL文件和一个名为TransBean的Java类(全部由Sunmi提供),并且可以看到在构建它时,所有这些都已转换为C#类。我已将所有AIDL文件的构建操作设置为 AndroidInterfaceDescription 。不知道应该对Java文件执行什么操作,但是我尝试将其设置为 AndroidJavaSource ,但似乎没有帮助。
问题 但是生成的TransBean.cs没有内容(甚至没有类定义)。结果,我收到构建错误,指出找不到TransBean。
我意识到我无法发布屏幕截图,尽管我可以发送一些截图(将尝试描述)
生成的TransBean.cs文件没有内容。我以为它应该包含Java类的C#表示形式。
TransBean的AIDL文件如下所示
package com.sunmi.trans;
parcelable TransBean;
TransBean.java文件具有很多内容,例如
package com.sunmi.trans;
import android.os.Parcel;
import android.os.Parcelable;
public class TransBean implements Parcelable {
private byte type = 0;
private String text = "";
private byte[] data = null;
private int datalength = 0;
public TransBean(){
type = 0;
data = null;
text = "";
datalength = 0;
};
这是生成的TransBean.cs文件。如您所见,它是空的
// This file is automatically generated and not supposed to be modified.
using System;
using Boolean = System.Boolean;
using String = System.String;
using List = Android.Runtime.JavaList;
using Map = Android.Runtime.JavaDictionary;
namespace Com.Sunmi.Trans
{
}
因此,任何需要使用它的东西都会引发构建错误( TransBean在命名空间中不存在),例如这一行(我猜也是从另一个AIDL文件自动生成的) )
void CommitPrint (Com.Sunmi.Trans.TransBean [] transbean, ICallback callback);
在上一行中,
请有人告诉我我做错了吗?我猜想在生成C#文件时,应该将Java文件的内容转换为C#并插入到生成的.cs文件中,但也许并没有选择它。
谢谢!