Tôi có một tập tin .jar
với một giao diện Java gọi MyService
, trong đó có một phương pháp:Xamarin .jar ràng buộc - 'Bitmap không thể tìm được'
boolean printBitmapObject(android.graphics.Bitmap bitmap, byte[] result);
Tôi muốn sử dụng .jar
tập tin này trong C# trong dự án Android Xamarin của tôi trong Visual Studio 2015. Tôi đã thực hiện các bước sau:
- Tôi đã tạo một dự án liên kết thư viện mới.
- Tôi đặt tệp
.jar
vàoJars
thư mục của dự án mới vớiBuildAction
thuộc tính được đặt thànhInputJar
. - Dự án được xây dựng thành công.
- Tôi đã thêm tham chiếu đến dự án liên kết thư viện vào dự án chính của mình.
Thật không may, tôi không thể xây dựng dự án chính của tôi nữa, bởi vì có một lỗi trong mã tự động tạo ra C#:
public interface IMyService : global::Android.OS.IInterface
{
bool PrintBitmapObject (Bitmap bmp, byte[] result); //"Bitmap" is red underlined
}
với thông điệp "The type or namespace name 'Bitmap' could not be found (are you missing a using directive or an assembly reference?)"
.
Ngoài ra còn có lớp tóm tắt được tạo tự động IMyServiceStub
, cũng không nhận dạng Bitmap
. Hơn nữa, nó không biết một số tính năng tự động tạo ra BitmapStub
một trong hai:
public abstract class IMyServiceStub : global::Android.OS.Binder, global::Android.OS.IInterface, IMyService
{
...
protected override bool OnTransact (int code, global::Android.OS.Parcel data, global::Android.OS.Parcel reply, int flags)
{
...
case TransactionPrintBitmapObject: {
data.EnforceInterface (descriptor);
Bitmap arg0 = default (Bitmap); //Bitmap red underlined
arg0 = BitmapStub.AsInterface (data.ReadStrongBinder()); //BitmapStub red underlined
byte [] arg1 = default (byte []);
var result = this.PrintBitmapObject (arg0, arg1);
reply.WriteNoException();
reply.WriteInt (result ? 1 : 0);
data.WriteByteArray (arg1);
return true;
}
...
}
}
Tôi đã cố gắng thêm using Bitmap = Android.Graphics.Bitmap
đến tập tin tự động tạo ra, nhưng nó không giúp đỡ, vì BitmapStub
vẫn chưa được biết và thay đổi của tôi sẽ bị ghi đè trong xây dựng tiếp theo.
Tôi có thể làm gì để khắc phục sự cố này không? Hay là một lỗi đã biết trong Xamarin (tôi sử dụng phiên bản 4.0)?
Bạn có thể chia sẻ tệp .jar để tôi có thể giúp bạn không? – jzeferino
@jzeferino Tôi không thể, thật không may, tôi sẽ phá vỡ NDA ... – vojta