I am attempting to bind Motorola Solutions' EMDK for reading barcodes on the MC67. I created a binding project and, while it does build successfully, the binding generator produces the following warnings:
BINDINGSGENERATOR : warning BG8C00: For type Java.Lang.Object, base interface Java.Interop.IJavaObjectEx does not exist. BINDINGSGENERATOR : warning BG8C00: For type Java.Lang.Throwable, base interface Java.Interop.IJavaObjectEx does not exist. BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.ProfileConfig.ActivitySelection, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.ProfileConfig.DataCapture, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DataCapture.Barcode, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DataCapture.DataDelivery, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.Barcode.DecoderParams, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.Barcode.Decoders, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.Barcode.ReaderParams, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.Barcode.ScanParams, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.Barcode.UpcEanParams, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DecoderParams.Codabar, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DecoderParams.Code11, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DecoderParams.Code128, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DecoderParams.Code39, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DecoderParams.Code93, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DataDelivery.Intent, due to a duplicate field, method or nested type name BINDINGSGENERATOR : warning BG8401: Skipping Com.Symbol.Emdk.DataDelivery.Keystroke, due to a duplicate field, method or nested type name
I haven't noted any issues stemming from the BG8C00 warnings, but my project requires the skipped fields so it's dead until that can be resolved.
Essentially, the ProfileConfig class contains a DataCapture subclass and a dataCapture field (only a variation in capitalization between the identifiers). Since binding attempts to also normalize capitalization to .NET's brand of camel case, the names conflicted and both identifiers got thrown out. I added the following line to metadata.xml and was able to resolve the issue for dataCapture:
dataCapt
A similar line corrects activitySelection. However, the other fields are nested deeper and actually produced new warnings when I attempted to correct them:
bcode
returns the warning:
BINDINGSGENERATOR : warning BG8A04: matched no nodes
I tried variations that also included ProfileConfig in the package name or class name but they return the same BG8A04 warning.
If I could turn off the Xamarin feature that normalizes capitalization to .NET convention that would take care of everything (since the names would not conflict).
Any tips on configuring the metadata.xml file or deactivating the capitalization feature?
Thanks.