MonoDroid的与Android的通用 - 图像 - 装载机 [英] Monodroid with Android-Universal-Image-Loader

查看:189
本文介绍了MonoDroid的与Android的通用 - 图像 - 装载机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想加入这个Android库( https://github.com/ nostra13 / Android的通用 - 图像 - 装载机在我MonoDroid的项目)。
在Visual Studio 2010中我创建了一个的的Java绑定库的项目中,我已经添加了 JAR 的库文件。

的事情是,当我建立我的项目,我得到一些错误:

<$p$p><$c$c>'Com.Nostra13.Universalimageloader.Cache.Memory.Impl.LRULimitedMemoryCache.RemoveNext()':返回类型必须是'java.lang.Object继承'来匹配重写的成员Com.Nostra13.Universalimageloader.Cache.Memory.LimitedMemoryCache.RemoveNext()

在这个code。该版本自动生成

 静态的IntPtr id_removeNext;
    [注册(removeNext,()Landroid /图形/位图;,GetRemoveNextHandler)]
    保护覆盖全球:: Android.Graphics.Bitmap RemoveNext()
    {
        如果(id_removeNext == IntPtr.Zero)
            id_removeNext = JNIEnv.GetMethodID(class_ref,removeNext,()Landroid /图形/位图;);        如果(的GetType()== ThresholdType)
            返回Java.Lang.Object.GetObject&LT;全球:: Android.Graphics.Bitmap&GT; (JNIEnv.CallObjectMethod(手柄,id_removeNext),JniHandleOwnership.TransferLocalRef);
        其他
            返回Java.Lang.Object.GetObject&LT;全球:: Android.Graphics.Bitmap&GT; (JNIEnv.CallNonvirtualObjectMethod(手柄,ThresholdClass,id_removeNext),JniHandleOwnership.TransferLocalRef);
    }

和也是这个误差

 'Com.Nostra13.Universalimageloader.Core.Download.URLConnectionImageDownloader不实现继承的抽象成员Com.Nostra13.Universalimageloader.Core.Download.ImageDownloader.GetStreamFromNetwork(Java.Net。 URI)

在这条线code的

 公共部分类URLConnectionImageDownloader:全球:: Com.Nostra13.Universalimageloader.Core.Download.ImageDownloader

没有人有任何想法如何解决这个问题?
或者有没有人成功导入该Java库在其应用MonoDroid的?

任何帮助很多AP preciated。
谢谢


解决方案

添加到您的变换\\ metadata.xml文件

 &LT; attr指示路径=/ API /包[@名称='com.nostra13.universalimageloader.cache.memory.impl']
/类[@名称='LRULimitedMemoryCache']
/方法[@名称='removeNext']NAME =managedReturn&GT;的java.lang.Object&LT; / ATTR&GT;

对于第二个错误,您可以添加实现方法的部分类定义 GetStreamFromNetwork(java.net.URI中)

 命名空间Com.Nostra13.Universalimageloader.Core.Download {
   部分类URLConnectionImageDownloader {
       公众覆盖的InputStream GetStreamFromNetwork(java.net.URI中){
           返回null;
       }
   }
}

请阅读本<一个href=\"http://docs.xamarin.com/Android/Guides/Advanced_Topics/Java_Integration_Overview/Binding_a_Java_Library_%28.jar%29\"相对=nofollow>了解更多信息教程

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

这篇关于MonoDroid的与Android的通用 - 图像 - 装载机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆