【问题标题】:NineOldAndroids for MonoDroid适用于 MonoDroid 的 NineOldAndroids
【发布时间】:2013-03-04 20:32:19
【问题描述】:

我正在尝试使用 NineOldAndroids 来实现与 3.x 之前的设备的向后兼容性,但我遇到了以下构建错误:

.../NineOldAndroids/obj/Debug/generated/src/Com.Nineoldandroids.Animation.AnimatorSet.cs(83,83): 错误 CS0508: Com.Nineoldandroids.Animation.AnimatorSet.SetDuration(long)': return type must beCom.Nineoldandroids.Animation.Animator' 匹配 被覆盖的成员 `Com.Nineoldandroids.Animation.Animator.SetDuration(long)' (CS0508) (NineOldAndroids)

但生成代码中的签名如下所示:

public override global::Com.Nineoldandroids.Animation.AnimatorSet SetDuration (long p0)

AnimatorSet 的类签名如下所示:

public sealed partial class AnimatorSet : global::Com.Nineoldandroids.Animation.Animator {

问题是,由于 AnimatorSet 是从 Animator 继承的,我不知道为什么会出现问题。

是否有任何您知道或知道如何解决此问题的为 MonoDroid 绑定 NineOldAndroids 的示例?

【问题讨论】:

    标签: xamarin.android xamarin


    【解决方案1】:

    这些错误消息是因为 C# 不支持 Covariant Return Types 而 Java ≥1.5 支持。

    将这些行添加到Transforms/Metadata.xml:

    <attr path="/api/package/class[@name='AnimatorSet']/method[@name='setDuration']" name="managedReturn">Com.Nineoldandroids.Animation.Animator</attr>
    <attr path="/api/package/class[@name='ValueAnimator']/method[@name='setDuration']" name="managedReturn">Com.Nineoldandroids.Animation.Animator</attr>
    

    【讨论】:

      猜你喜欢
      • 2015-02-11
      • 2014-03-08
      • 2014-12-26
      • 2013-11-05
      • 1970-01-01
      • 2014-04-02
      • 2023-03-14
      • 2015-04-23
      • 2013-04-03
      相关资源
      最近更新 更多