Я совершенно новичок в Xamarin.Я использую VS2017, и я включил несколько файлов AIDL для устройства POS Sunmi V1.В конце концов мне нужно, чтобы он печатал на термопринтер устройства при получении нового заказа, но я борюсь с основами.
Я добавил файлы AIDL и класс Java с именем TransBean (все предоставленоSunmi), и я вижу, что когда я его собираю, все это преобразуется в классы C #.Я установил действие сборки на AndroidInterfaceDescription для всех файлов AIDL.Не уверен, что мне следует делать с файлом Java, но я попытался установить для него значение AndroidJavaSource , но, похоже, это не помогло.
Проблема Но сгенерированный TransBean.cs не имеет содержимого (даже определения класса).В результате я получаю ошибки сборки, говорящие, что он не может найти TransBean.
Просто понял, что я не могу публиковать скриншоты, хотя у меня есть несколько, которые я могу отправить (постараюсь описать вместо)
Сгенерированный файл TransBean.cs не имеет содержимого.Я бы предположил, что он должен содержать представление C # класса Java.
Файл AIDL для TransBean выглядит следующим образом
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, но, возможно, он его не забирает.
Спасибо!