我正在尝试使用NineOldAndroids来实现与3.x之前的设备的向后兼容性,但我遇到了以下构建错误:
... / NineOldAndroids / OBJ /调试/生成/ SRC / Com.Nineoldandroids.Animation.AnimatorSet.cs(83,83): 错误CS0508:
Com.Nineoldandroids.Animation.AnimatorSet.SetDuration(long)': return type must be
Com.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?
答案 0 :(得分:0)
这些错误消息是因为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>