I'm trying to add this Android library (https://github.com/nostra13/Android-Universal-Image-Loader) in my monodroid project. In Visual Studio 2010 I've created a Java Bindings Library project in which I've added the jar file of that library.
The thing is that when I build my project I get some errors :
'Com.Nostra13.Universalimageloader.Cache.Memory.Impl.LRULimitedMemoryCache.RemoveNext()': return type must be 'Java.Lang.Object' to match overridden member 'Com.Nostra13.Universalimageloader.Cache.Memory.LimitedMemoryCache.RemoveNext()'
on this code that the build auto-generated
static IntPtr id_removeNext;
[Register ("removeNext", "()Landroid/graphics/Bitmap;", "GetRemoveNextHandler")]
protected override global::Android.Graphics.Bitmap RemoveNext ()
{
if (id_removeNext == IntPtr.Zero)
id_removeNext = JNIEnv.GetMethodID (class_ref, "removeNext", "()Landroid/graphics/Bitmap;");
if (GetType () == ThresholdType)
return Java.Lang.Object.GetObject<global::Android.Graphics.Bitmap> (JNIEnv.CallObjectMethod (Handle, id_removeNext), JniHandleOwnership.TransferLocalRef);
else
return Java.Lang.Object.GetObject<global::Android.Graphics.Bitmap> (JNIEnv.CallNonvirtualObjectMethod (Handle, ThresholdClass, id_removeNext), JniHandleOwnership.TransferLocalRef);
}
And also this error
'Com.Nostra13.Universalimageloader.Core.Download.URLConnectionImageDownloader' does not implement inherited abstract member 'Com.Nostra13.Universalimageloader.Core.Download.ImageDownloader.GetStreamFromNetwork(Java.Net.URI)'
on this line of code
public partial class URLConnectionImageDownloader : global::Com.Nostra13.Universalimageloader.Core.Download.ImageDownloader
Does anyone have any ideas how to fix this problem? Or has anyone successfully imported this java library in their Monodroid application?
Any help is much appreciated. Thanks
Add this to your Transforms\Metadata.xml file
<attr path=”/api/package[@name=’com.nostra13.universalimageloader.cache.memory.impl’]
/class[@name=’LRULimitedMemoryCache’]
/method[@name=’removeNext’]” name=”managedReturn”>Java.Lang.Object</attr>
For the second error you can add a partial class definition that implements the method GetStreamFromNetwork(Java.Net.URI)
namespace Com.Nostra13.Universalimageloader.Core.Download {
partial class URLConnectionImageDownloader{
public override InputStream GetStreamFromNetwork(Java.Net.URI) {
return null;
}
}
}
Please read this tutorial for more info