我在Visual Studio的Xamarin Android解决方案中绑定了libaums AAR . 我在here使用了 libaums-0.5.0.aar
.
在编译时,我得到了2个错误,我通过将这些指令添加到我的 Metadata.xml
文件来解决:
<attr path="/api/package[@name='com.github.mjdev.libaums.fs.fat32']/class[@name='FatDirectory']/method[@name='createDirectory']" name="managedReturn">IUsbFile</attr>
<attr path="/api/package[@name='com.github.mjdev.libaums.fs.fat32']/class[@name='FatDirectory']/method[@name='createFile']" name="managedReturn">IUsbFile</attr>
然后我尝试实现libaums github上的示例来获取大容量存储设备:
UsbMassStorageDevice[] devices = UsbMassStorageDevice.GetMassStorageDevices(Global.MyActivity.ApplicationContext);
foreach (UsbMassStorageDevice device in devices)
{
// before interacting with a device you need to call init()!
device.Init();
// Only uses the first partition on the device
IFileSystem currentFs = device.Partitions[0].FileSystem;
Console.WriteLine("Capacity: " + currentFs.Capacity);
Console.WriteLine("Occupied Space: " + currentFs.OccupiedSpace);
Console.WriteLine("Free Space: " + currentFs.FreeSpace);
Console.WriteLine("Chunk size: " + currentFs.ChunkSize);
}
但是在运行时我在 currentFs.Capacity
上有一个例外,它说:
没有非静态方法“Lcom / github / mjdev / libaums / fs / fat32 / Fat32FileSystem; getCapacity()J”
有任何想法吗?
1 回答
你是如何设法用你的元数据集编译的?我必须将以下内容添加到metadata.xml以进行编译:
为什么?例如,如果没有这个,在转换方法后,CreateDirectory(string)具有签名
public virtual unsafe global::Com.Github.Mjdev.Libaums.FS.Fat32.FatFile CreateFile (string p0)
. 但它必须是public override unsafe IUsbFile CreateFile (string p0)
. 将final
更改为true似乎会删除虚拟修改器(似乎是一个错误?) .关于您的例外,您是否尝试使用较新的库? Here您可以下载0.5.5版本 .