VS2017未构建AIDL所需的Java类

时间:2018-10-13 12:57:21

标签: xamarin visual-studio-2017 aidl

我对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文件中,但也许并没有选择它。

谢谢!

0 个答案:

没有答案