VS2017 не создает класс Java, необходимый для AIDL - PullRequest
0 голосов
/ 13 октября 2018

Я совершенно новичок в 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, но, возможно, он его не забирает.

Спасибо!

...