2013-03-16 68 views
0

我試圖用NineOldAndroids以實現與3.x之前版本的設備向後兼容,但我遇到下面的生成錯誤:NineOldAndroids爲MonoDroid的

.../NineOldAndroids/obj/Debug/generated/src/Com.Nineoldandroids.Animation.AnimatorSet.cs(83,83): Error CS0508: Com.Nineoldandroids.Animation.AnimatorSet.SetDuration(long)': return type must be Com.Nineoldandroids.Animation.Animator' to match overridden member `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是從動畫師繼承的,我不確定爲什麼它應該是一個問題。

是否有任何綁定NineOldAndroids的MonoDroid你知道或知道如何解決這個問題的例子?

回答

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>